使用ABAP(ADBC)和Java(JDBC)连接SAP HANA数据库
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,在表DBCON里维护一条记录,指向HANA数据库。con_ENV里填入HANA数据库的主机名和端口号。如vmXXXX:30015DATA: ls_new TYPE DBCON.ls_new-con_n
千家信息网最后更新 2025年02月01日使用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安全错误
数据库的锁怎样保障安全
橘子服务器无法连接蓝牙
上海服务器虚拟化哪家便宜
如何对数据库中数据进行查询统计
网络安全教育感想1500字
毕磊网络安全
.net软件开发好学吗
数据库默认语法在哪里改
福州海牛网络技术有限公司
博物馆网络安全教育总结
北京服务器负载均衡厂家云空间
软件开发的口碑
游戏暂时无法连接服务器
时间服务器和时间戳服务器
中职网络技术课程是干嘛的
腾讯软件开发公司招聘
软件开发有纹身可以进公司吗
pg数据库修改归档文件路径
竞网软件开发公司
实时数据库入门
网络数据库产品对比
华东理工数据服务器
网络安全的新闻作品
怎么实现网站网络安全
网络安全课观后感400
宇视科技软件开发
安卓软件开发专业
i7服务器cpu
企业网络安全防护1 x证书
电脑数据库丢了怎么找回来
大兴区网络软件开发创新服务