使用ABAP(ADBC)和Java(JDBC)连接SAP HANA数据库
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,在表DBCON里维护一条记录,指向HANA数据库。con_ENV里填入HANA数据库的主机名和端口号。如vmXXXX:30015DATA: ls_new TYPE DBCON.ls_new-con_n
千家信息网最后更新 2026年10月31日使用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安全错误
数据库的锁怎样保障安全
互联网高科技
互联网加科技
互联网科技公司税收优惠
互联网科技小贷
云电互联网科技
深圳艾佳互联网科技
济南和联互联网科技有限公司
须眉科技是互联网公司吗
互联网经济与金融科技
广西互联网科技孵化中心
晋城互联网科技
电子商务与互联网科技的关系
张召忠谈中国互联网科技
上海互联网科技公司ppt
易租星互联网科技有限公司
互联网科技大佬云集
重庆科技产业互联网有哪些
优雇互联网科技有限公司
银川新华互联网科技学校招聘
小牛互联网科技有限公司地址
上海挚品互联网科技有限公司
互联网科技工作委员会副主任毛军
互联网科技保险
奇酷互联网络科技
互联网科技logo
广西互联网科技孵化中心
杭州披云加互联网科技有限公司
唯美互联网科技
互联网时代高科技布局
互联网科技和医药行业