在表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. 测试转型之路--学习ing

    http://www.importnew.com/27309.html 测试开发工程师 - 抖音方向 职位描述1.深度参与产品研发项目, 协同产品经理.业务研发.用户反馈团队优质交付产品:2.参与质量 ...

  2. 单元测试mock框架——jmockit实战

    JMockit是google code上面的一个java单元测试mock项目,她很方便地让你对单元测试中的final类,静态方法,构造方法进行mock,功能强大.项目地址在:http://jmocki ...

  3. zookeeper崩溃修复

    cat /etc/zookeeper/conf/zoo.cfg 找到dataDir=/var/lib/zookeeper 切换到路径/var/lib/zookeeper cd /var/lib/zoo ...

  4. Problem06 求最大公约数及最小公倍数

    题目:输入两个正整数m和n,求其最大公约数(m,n)和最小公倍数[m,n]. 程序分析:利用辗转相除法. 利用辗除法:用较大数除以较小数,再用出现的余数(第一余数)去除除数, 再用出现的余数(第二余数 ...

  5. Java学习笔记day08_day09_对象实例化_private_this

    1.类与对象 类就是一个模版. 对象的实例化就是根据模版类, 使用new关键字创建实际的对象. 2.类的定义及创建对象 类的定义格式: public class 类名{ //属性(变量) 数据类型 变 ...

  6. php数组·的方法3-数组和变量之间的转换

    /* * 数组和变量之间的转换 * */ //extract() 使用数组定义一组变量 // 键名为变量名 键值为变量值(类似于js的解构赋值) // 返回值是数组的长度 echo '<hr&g ...

  7. 原生JS实现图片拖拽移动与缩放

    看一下最终效果,图片可以拖动,可以缩放 把代码贴出来,可以直接粘贴使用,大致的思想就是鼠标按下的时候获取当时的鼠标位置,要减去left和top值,移动的时候获取位置减去初始的值就得到移动的时候的lef ...

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

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

  9. 配置wordpress

    安装教程 软件介绍 WordPress以它的易于安装而出名.在大多数情况下,安装WordPress是一个很简单的事情,并且花不到5分钟就可以搞定.现在很多web主机都提供自动安装WordPress的工 ...

  10. Play on Words UVA - 10129 (欧拉回路)

    题目链接:https://vjudge.net/problem/UVA-10129 题目大意:输入N  代表有n个字符串  每个字符串最长1000  要求你把所有的字符串连成一个序列  每个字符串的第 ...