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

使用ABAP(ADBC)和Java(JDBC)连接SAP HANA数据库的更多相关文章

  1. 使用 SSL 加密的 JDBC 连接 SAP HANA 数据库

    近期客户为满足安全要求,提了让业务应用使用 SSL 方式连接 SAP HANA 数据库的需求.本人查询 SAP官方文档 发现数据库支持 SSL 连接,有参数直接加到 JDBC 的 URL 后边就行了, ...

  2. java jdbc 连接mysql数据库 实现增删改查

    好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打 ...

  3. Java JDBC连接SQL Server2005错误:通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败 及sql2008外围服务器

    转载:Java JDBC连接SQL Server2005错误:通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败 错误原因如下: Exception in thread & ...

  4. Java使用JDBC连接SQL Server数据库|实现学生成绩信息系统

    Java实验四 JDBC 使用SQL Server数据库或者MySQL数据库各自的客户端工具,完成如下任务: (1)创建数据库students: (2)在数据students中创建表scores,包括 ...

  5. Java使用JDBC连接SQL Server数据库

    Java使用JDBC连接SQL Server数据库 1.下载驱动 1.下载Microsoft SQL Server JDBC 驱动程序 https://docs.microsoft.com/zh-cn ...

  6. 编写Java程序,使用JDBC连接SQL Server数据库

    返回本章节 返回作业目录 需求说明: 使用JDBC连接SQL Server数据库 SQL Server数据库位于192.168.2.101. 所需连接的数据库为eshop_db,用户名为test,密码 ...

  7. JDBC连接sql server数据库及其它

    JDBC连接sql server数据库的步骤如下: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.Class类的 ...

  8. JDBC连接sql server数据库的详细步骤和代码

    JDBC连接sql server数据库的详细步骤和代码 JDBC连接sql server数据库的步骤如下: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Ja ...

  9. 用JDBC连接SQL Server2017数据库

    用JDBC连接SQL Server2017数据库 2018年03月26日 17:40:47 yasinzhang 阅读数:8346 安装完SQL server2017之后,选择SQL 身份验证登录,可 ...

随机推荐

  1. 2016"百度之星" - 资格赛(Astar Round1)D

    Problem Description 度熊所居住的 D 国,是一个完全尊重人权的国度.以至于这个国家的所有人命名自己的名字都非常奇怪.一个人的名字由若干个字符组成,同样的,这些字符的全排列的结果中的 ...

  2. UESTC 1437

    LCA模板题 随便找的倍增模板... #include<bits/stdc++.h> using namespace std; const int maxn = 1e5+11; int t ...

  3. Java中Array与ArrayList的主要区别

    1)精辟阐述: 可以将 ArrayList想象成一种"会自动扩增容量的Array". 2)Array([]):最高效:但是其容量固定且无法动态改变:      ArrayList: ...

  4. Pycharm在线/手动离线安装第三方库-以scapy为例(本地离线添加已经安装的第三方库通过添加Path实现)

    在线安装运行Pycharm,打开需要添加scapy文件的项目,以TestScapy为例           点击工具栏的File选项,选中Settings,单击打开                  ...

  5. 斑马条码打印机通过js post 打印

    <html lang="zh-ch"><head>  <meta charset="utf-8">  <meta ht ...

  6. math.random()方法的使用

    一:导言 以前总是被数字的范围正则搞的头大,在此总结了一下 二:用法 Math.random()函数返回0和1之间的伪随机数,可能为0,但总是小于1,[0,1) 生成n-m,包含n但不包含m的整数: ...

  7. 树莓派安装Raspbian系统以及相关配置(通过Windows)

    1.准备 树莓派3B+(E14) 一张内存卡 (至少16G) 一个读卡器 普通电脑显示器,键盘,鼠标 2.操作系统烧制(下面的操作都是在Windows中操作,通过读开启读取内存卡) Raspbian系 ...

  8. Mybatis学习笔记2 - 解析config

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC ...

  9. keil版本控制

    keil5.15才有对git svn的支持,之前的有其它的svcs;   http://www.keil.com/appnotes/files/apnt_279.pdf http://stdbit.c ...

  10. [inner] bug

    这样正确 command: ["sh", "-c", "mysql -h${DC_DB_HOST} -uroot -p${MYSQL_ROOT_PAS ...