使用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資料庫
- java jdbc連線資料庫JavaJDBC資料庫
- 使用JDBC操作SAP雲平臺上的HANA資料庫JDBC資料庫
- java Jdbc連線oracle資料庫連線測試JavaJDBCOracle資料庫
- 使用 SAP HANA Virtual Table 連線外部資料來源
- JDBC連線資料庫JDBC資料庫
- Java各資料庫jdbc連線,和需要的jar包Java資料庫JDBCJAR
- 使用Eclipse連線SAP雲平臺上的HANA資料庫例項Eclipse資料庫
- 如何在 SAP BTP Java 應用裡使用 SAP HANA 資料庫Java資料庫
- 淺談JDBC和資料庫連線池JDBC資料庫
- JDBC、JDBC框架、資料庫事務、資料庫連線池JDBC框架資料庫
- java開發中JDBC連線資料庫程式碼和步驟JavaJDBC資料庫
- [轉載] 1.1Java使用JDBC原生方式連線MySql資料庫JavaJDBCMySql資料庫
- 【JavaWeb】JDBC連線MySQL資料庫JavaWebJDBCMySql資料庫
- JDBC之連線sqlserver資料庫JDBCSQLServer資料庫
- JDBC連線資料庫步驟JDBC資料庫
- JDBC連線資料庫經驗JDBC資料庫
- JDBC 連線資料庫的類JDBC資料庫
- JDBC連線各資料庫大全JDBC資料庫
- jdbc獲取資料庫連線JDBC資料庫
- java連線資料庫時jdbc設定編碼Java資料庫JDBC
- java開發中JDBC連線資料庫程式碼JavaJDBC資料庫
- Java 的JDBC 資料庫連線池實現方法JavaJDBC資料庫
- java 資料庫程式設計(一)JDBC連線Sql Server資料庫Java資料庫程式設計JDBCSQLServer
- 【SAP HANA】新建賬戶和資料庫(2)資料庫
- 完整java開發中JDBC連線資料庫程式碼和步驟JavaJDBC資料庫
- JDBC連線MySQL資料庫的方法和例項JDBCMySql資料庫
- Java的JDBC通過SSH Tunnel連線MySQL資料庫JavaJDBCMySql資料庫
- JAVA中十六種主流資料庫的JDBC連線字串Java資料庫JDBC字串
- JAVA基礎:JDBC最佳化資料庫連線(轉)JavaJDBC資料庫
- JDBC資料庫連線池實現JDBC資料庫
- 常用資料庫JDBC連線寫法資料庫JDBC
- JDBC---jsp資料庫連線JDBCJS資料庫
- JDBC連線三種資料庫例子JDBC資料庫
- jdbc-odbc連線資料庫 (轉)JDBC資料庫
- java通過jdbc連結資料庫JavaJDBC資料庫
- JDBC連線批量處理資料入庫JDBC