使用ABAP(ADBC)和Java(JDBC)连接SAP HANA数据库
生活随笔
收集整理的這篇文章主要介紹了
使用ABAP(ADBC)和Java(JDBC)连接SAP HANA数据库
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
在表DBCON里維護一條記錄,指向HANA數(shù)據(jù)庫。con_ENV里填入HANA數(shù)據(jù)庫的主機名和端口號。如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'EXPORTINGDBCON_WORKAREA = ls_newEXCEPTIONSDBCON_KEY_EXISTS = 1SECURE_STORE_KEY_EXISTS = 2SECURE_STORE_OTHER = 3OTHERS = 4. IF SY-SUBRC = 0.WRITE:/ 'Insert Successfully'. ENDIF. 然后使用ABAP代碼創(chuàng)建一個新的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實現(xiàn)類似:
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://<HANA數(shù)據(jù)庫主機名>: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打印結(jié)果:數(shù)據(jù)能夠成功通過JDBC從HANA數(shù)據(jù)庫讀取出來。
總結(jié)
以上是生活随笔為你收集整理的使用ABAP(ADBC)和Java(JDBC)连接SAP HANA数据库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一大波 Android 刘海屏来袭,全网
- 下一篇: shell脚本编程学习之路-shell数