使用ABAP(ADBC)和Java(JDBC)连接SAP HANA数据库
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,在表DBCON里维护一条记录,指向HANA数据库。con_ENV里填入HANA数据库的主机名和端口号。如vmXXXX:30015DATA: ls_new TYPE DBCON.ls_new-con_n
千家信息网最后更新 2025年11月07日使用ABAP(ADBC)和Java(JDBC)连接SAP HANA数据库
在表DBCON里维护一条记录,指向HANA数据库。con_ENV里填入HANA数据库的主机名和端口号。如vmXXXX:30015
DATA: ls_new TYPE DBCON.ls_new-con_name = 'HAN'.ls_new-dbms = 'HDB'.ls_new-user_name = 'system'.ls_new-password = 'Sap12345'.ls_new-con_env = 'vml2018:30015'.
CALL FUNCTION 'DBCON_INSERT' EXPORTING DBCON_WORKAREA = ls_new EXCEPTIONS DBCON_KEY_EXISTS = 1 SECURE_STORE_KEY_EXISTS = 2 SECURE_STORE_OTHER = 3 OTHERS = 4 .IF SY-SUBRC = 0. WRITE:/ 'Insert Successfully'.ENDIF.然后使用ABAP代码创建一个新的table,插入三条entry进行,再读出来,最后删除table.TYPES: BEGIN OF result_t, key TYPE i, value TYPE string, END OF result_t.DATA: connection TYPE dbcon-con_name VALUE 'HAN', stmt_ref TYPE REF TO cl_sql_statement, cx_sql_exception TYPE REF TO cx_sql_exception, lv_text TYPE string, res_ref TYPE REF TO cl_sql_result_set, d_ref TYPE REF TO DATA, result_tab TYPE TABLE OF result_t, result_line TYPE result_t, row_cnt TYPE i, con_ref TYPE REF TO cl_sql_connection.con_ref = cl_sql_connection=>get_connection( connection ).stmt_ref = con_ref->create_statement( ).TRY. stmt_ref->execute_ddl( 'CREATE TABLE I042416_TESTPROC_TAB( key INT PRIMARY KEY, value NVARCHAR(255) )' ). stmt_ref->execute_update( 'INSERT INTO I042416_TESTPROC_TAB VALUES(1, ''First value'' )' ). stmt_ref->execute_update( 'INSERT INTO I042416_TESTPROC_TAB VALUES(2, ''Second value'' )' ). stmt_ref->execute_update( 'INSERT INTO I042416_TESTPROC_TAB VALUES(3, ''Third value'' )' ). res_ref = stmt_ref->execute_query( 'SELECT * FROM I042416_TESTPROC_TAB' ). GET REFERENCE OF result_tab INTO d_ref. res_ref->set_param_table( d_ref ). row_cnt = res_ref->next_package( ). stmt_ref->execute_ddl( 'DROP TABLE I042416_TESTPROC_TAB' ).CATCH cx_sql_exception INTO cx_sql_exception. lv_text = cx_sql_exception->get_text( ). WRITE:/ 'Error:' , lv_text.ENDTRY.LOOP AT result_tab INTO result_line. WRITE:/ 'Key:' , result_line-key, ' Value:', result_line-value.ENDLOOP.
Java实现类似: public static void main(String[] args) { try { Class.forName("com.sap.db.jdbc.Driver"); System.out.println("Create a connection..."); con = (com.sap.db.jdbc.trace.Connection) DriverManager .getConnection("jdbc:sap://:30015",// , "system", "此处填入登录密码"); cs = (com.sap.db.jdbc.trace.CallableStatement) con.prepareCall("call I042416_two_par(NULL, NULL)"); cs.execute(); int index = 0; do { int rowCount = 0; com.sap.db.jdbc.trace.ResultSet rs = (com.sap.db.jdbc.trace.ResultSet)cs.getResultSet(); ResultSetMetaData metaData = rs.getMetaData(); int columnCount = metaData.getColumnCount(); while (rs != null && rs.next()) { for (int i = 1; i <= columnCount; i++) { System.out.print(rs.getString(i) + " "); if (i == columnCount) { System.out.println(); } } System.out.println("Current Result Set Index:" + index + " Row Count: " + rowCount++); } System.out.println("Result Set Index: " + index++); } while(cs.getMoreResults()); }
console打印结果:数据能够成功通过JDBC从HANA数据库读取出来。
要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:
数据
数据库
成功
主机
代码
公众
口号
密码
技术
技术文章
指向
文章
更多
结果
三条
二维
二维码
登录
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
虹口区网络技术服务咨询优势
传奇数据库m2下载
网络安全人民手抄报图片
完美世界游戏服务器怎么进去
殷承良网络安全
服务器电源需要跑程序吗
网络安全应急指挥中心调研
海南会计软件开发中心
防双网混插网络安全套件专利
查看服务器登录共享情况
数据库的安全性 完整性
服务器管理员怎么打开玩家背包
数据库创建表权限
原装进口戴尔服务器批发零售价
学软件开发上什么大学排名
国家禁止赌博软件开发
奉贤区新能源软件开发费用
如何搭建nfs服务器
知网数据库的数据都有版权吗
sql2008数据库名查看
sql数据库没了怎么查看
网络技术员岗位的工作职责与内容
深圳科技园互联网科技
低代码数据库
单抗数据库
有经验的网络技术人员经常
新型软件开发节能标准
数据库创建分区表的作用是什么
软件开发学习什么语言
服务器改系统