ITKeyword,专注技术干货聚合推荐

注册 | 登录

使用ABAP(ADBC)和Java(JDBC)连接SAP HANA数据库

JerryWang_SAP 分享于

2020腾讯云限时秒杀,爆款1核2G云服务器99元/年!(领取2860元代金券),
地址https://cloud.tencent.com/act/cps/redirect?redirect=1062

2020阿里云最低价产品入口+领取代金券(老用户3折起),
入口地址https://www.aliyun.com/minisite/goods

推荐:使用JDBC操作SAP云平台上的HANA数据库

本文假设您对JDBC(Java Database Connectivity)有最基本的了解。您也可以将其同ADBC(ABAP Database Connectivity)做对比,细节请参考我的博客ADBC and JDBC 这篇

在表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) {

推荐:java jdbc连接数据库(使用mysql进行连接)

一、JDBC简介 Java 数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更

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://<HANA数据库主机名>: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的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

推荐:使用Eclipse连接SAP云平台上的HANA数据库实例

SAP云平台(Cloud Platform)上的HANA数据库实例有两种方式访问: 1. 通过SAP云平台的基于网页版的Development Tool:SAP HANA Web-Based Development Workbench  

在表DBCON里维护一条记录,指向HANA数据库。con_ENV里填入HANA数据库的主机名和端口号。如vmXXXX:30015   DATA: ls_new TYPE DBCON.ls_new-con_name = 'HAN'.ls_new-dbms = 'HDB'.ls_ne

相关阅读排行


相关内容推荐

最新文章

×

×

请激活账号

为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。

您的注册邮箱: 修改

重新发送激活邮件 进入我的邮箱

如果您没有收到激活邮件,请注意检查垃圾箱。