使用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的原創技術文章,請關注公眾號"汪子熙"或者掃描下面二維碼:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2153129/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SAP ABAP ADBC和Java JDBC的使用比較JavaJDBC
- 使用 SSL 加密的 JDBC 連線 SAP HANA 資料庫加密JDBC資料庫
- 使用JDBC操作SAP雲平臺上的HANA資料庫JDBC資料庫
- JDBC連線資料庫JDBC資料庫
- 使用 SAP HANA Virtual Table 連線外部資料來源
- 使用Eclipse連線SAP雲平臺上的HANA資料庫例項Eclipse資料庫
- 淺談JDBC和資料庫連線池JDBC資料庫
- 如何在 SAP BTP Java 應用裡使用 SAP HANA 資料庫Java資料庫
- [轉載] 1.1Java使用JDBC原生方式連線MySql資料庫JavaJDBCMySql資料庫
- java 資料庫程式設計(一)JDBC連線Sql Server資料庫Java資料庫程式設計JDBCSQLServer
- JDBC之連線sqlserver資料庫JDBCSQLServer資料庫
- JDBC連線MySQL資料庫的方法和例項JDBCMySql資料庫
- Java的JDBC通過SSH Tunnel連線MySQL資料庫JavaJDBCMySql資料庫
- JDBC連線批量處理資料入庫JDBC
- 【JDBC】java連線池模擬測試連線Oracle資料庫指令碼參考JDBCJavaOracle資料庫指令碼
- 【Mybatis原始碼解析】- JDBC連線資料庫的原理和操作MyBatis原始碼JDBC資料庫
- JDBC連結資料庫JDBC資料庫
- JDBC第一篇【介紹JDBC、使用JDBC連線資料庫、簡單的工具類】JDBC資料庫
- java連線資料庫Java資料庫
- java jdbc深入理解(connection與threadlocal與資料庫連線池和事務實)JavaJDBCthread資料庫
- JDBC中連線資料庫的常用jar包JDBC資料庫JAR
- jdbc連線oracle rac資料庫的寫法JDBCOracle資料庫
- 資料庫連線分析(1)-從JDBC到MyBatis資料庫JDBCMyBatis
- openGauss資料庫JDBC環境連線配置(Eclipse)資料庫JDBCEclipse
- 資料庫本地,sqlplus和資料庫工具連線資料庫正常,但是JDBC連線資料庫出現了一直提示使用者名稱/密碼錯誤資料庫SQLJDBC密碼
- Java JDBC連線MYsqlJavaJDBCMySql
- JDBC連線資料庫實現增刪改查JDBC資料庫
- 【MySQL】自定義資料庫連線池和開源資料庫連線池的使用MySql資料庫
- 如何使用 Node.js 訪問 SAP HANA Cloud 資料庫裡的資料Node.jsCloud資料庫
- 使用Sequelize連線資料庫資料庫
- 使用JPA連線資料庫資料庫
- 使用Python連線資料庫Python資料庫
- MySQL下載安裝配置及JDBC連線資料庫MySqlJDBC資料庫
- Django 直接使用資料庫連線和遊標讀寫資料庫Django資料庫
- 如何使用SAP HANA Vora規劃HANA大資料戰略?LH大資料
- 在SAP HANA Express Edition裡建立資料庫表Express資料庫
- Sharding-JDBC使用jasypt3.0及以上版本加密資料庫連線密碼JDBC加密資料庫密碼
- 使用instantclient連線oracle資料庫clientOracle資料庫