博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用JDBC操作SAP云平台上的HANA数据库
阅读量:2439 次
发布时间:2019-05-10

本文共 2896 字,大约阅读时间需要 9 分钟。

本文假设您对JDBC(Java Database Connectivity)有最基本的了解。您也可以将其同ADBC(ABAP Database Connectivity)做对比,细节请参考我的博客

这篇文章分为两部分,第一部分内容:

  1. 介绍如何在SAP Cloud Platform(云平台)上创建一个HANA数据库实例
  2. 开发一个Java应用,部署到SAP云平台上。该Java应用使用JDBC操作同样处于SAP云平台上的HANA数据库。

第二部分内容:

开发一个Java应用,部署在位于Corporate Network的On-Premise系统里。该Java应用通过Cloud Connector访问位于SAP云平台上的HANA实例。我的前一篇公众号文章 使用Java+SAP云平台+SAP Cloud Connector调用ABAP On-Premise系统里的函数 介绍了部署在Internet Network上的应用如何访问Corporate Network内的On-Premise系统上的服务,而本文将要介绍的场景则反其道而行之:部署在On-Premise上的Java应用访问Internet Network上的SAP云平台的HANA数据库。

本文介绍的Java应用的全部源代码在我的上:

创建SAP云平台上的HANA数据库实例

  1. 登陆SAP云平台Cockpit,创建一个新的HANA数据库实例:

    700

设置数据库ID和System user的密码。这里我设置的数据库ID为hana01, 后面会使用到。

700

创建成功后,数据库实例状态变为STARTED,可以把其Development Tools的链接加到收藏夹里,后面也会用到。


699

至此这个位于SAP云平台上的HANA数据库实例已经可用了。下一步就是开发Java程序通过JDBC访问它。

使用JDBC访问HANA数据库

将我github上的Java应用import到Eclipse,如下图所示:

应用主要分三个文件:

466
  • Person.java

    定义了Person模型,只包含id,firstName和lastName三个成员,以及对应的getter和setter方法,即所谓的POJO(Plain Old Java Object )。POJO这个名字用来强调它是一个普通Java对象,没有遵从任何特定的Java约定或框架(如EJB)。

  • PersonDAO.java

    顾名思义: DAO - Data Access Object。通过JDBC连接HANA数据库实例,创建名为T_PERSONS的数据库表,已经往表里插入数据的逻辑都写在这个DAO类里。

  • PersistenceWithJDBCServlet.java

    一个简单的通过Servlet实现的UI,用于接受用户输入并调用PersonDAO将输入发送到HANA数据库实例。

JDBC数据库DataSource实例的获取通过JNDI完成,该实例作为输入参数传入到DAO构造函数,所有接下来的JDBC操作均通过该DataSource进行。

700

这个DefaultDB的配置位于web.xml:


700

将该应用部署到SAP云平台,应用名为jerryjdbc。

700

此时仅仅通过上图web.xml的配置,Java应用还无法知道在SAP云平台上到底要操作哪个数据库实例。

为此我们需要将jerryjdbc这个应用同第一步创建的HANA数据库实例hana01绑定起来。该绑定通过下图的Data Source bingdings页面创建:


700

绑定成功后,即可通过Servlet UI提供的简易界面,向HANA数据库实例里插入一个Person记录 Jerry Wang。


700

在手机上访问该数据库实例,能看到刚刚插入的Jerry Wang。
700

On-Premise系统应用连接Internet Network上的数据库实例

前文介绍的Java应用和HANA数据库实例均位于SAP云平台。我的前一篇公众号文章 使用Java+SAP云平台+SAP Cloud Connector调用ABAP On-Premise系统里的函数 介绍了部署在Internet Network上的应用如何访问Corporate Network上的服务,现在我们试着把访问方向翻转:现在我把Java应用部署在Corporate Network里,比如SAP成都研究院机房的一台服务器上,让该Java应用去连接SAP云平台上的HANA数据库实例。

同样的,这里再次需要使用到Cloud Connector。

700

配置Cloud Connector完成从On-Premise系统到Cloud的连接

在SAP云平台创建另一个HANA数据库实例,取名为jerrydemo。然后登录Cloud Connector,点击标签On-Premise to Cloud,创建一个新的Service Channels:


700

将新建的数据库实例jerrydemo分配到这个新建的Channel去:


563

创建成功如下图。注意生成的端口号32215,后续会使用。

700

修改On-Premise系统上Java server的配置,让其指向SAP云平台的数据库实例

Java应用的代码无需做任何调整,仅需更改Server配置。修改Servers文件夹下的文件connection.properties, 明细如下,目的就是将该Server的数据库连接指向Cloud Connector上刚刚配置的Service Channel,通过Cloud Connector作为桥梁连接到SAP云平台上的HANA数据库。

javax.persistence.jdbc.url: 指向的localhost:32215即Cloud Connector上配置的Service Channel,该Channel我分配的HANA数据库实例的ID为jerrydemo。currentschema=SYSTEM,意为接下来我通过JDBC创建的数据库表会分配到SYSTEM schema下。

javax.persistenc.jdbc.user / password: 填入jerrydemo这个数据库实例的访问用户名和密码。

700

至此所有配置完成。

启动On-Premise系统上的localhost服务器,插入两条数据:


646

打开SAP云平台上的HANA Development Tool连接,从SYSTEM这个Schema下能观察到通过刚才运行在On-Premise系统上的Web应用插入的两条记录,说明从On-Premise系统写入SAP云平台数据库的尝试成功。

700

要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

321
531

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24475491/viewspace-2154716/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/24475491/viewspace-2154716/

你可能感兴趣的文章
利用 Kylix3 从 Windows 迁移到 Linux(转)
查看>>
Linux版本痛失桌面市场,标准将出炉(转)
查看>>
Solaris 10第二次更新的要点(转)
查看>>
Windows使用Apche并查看MySQL数据库(转)
查看>>
Shell 符号(转)
查看>>
Fedora Core 6 Pre release images available(转)
查看>>
linux下配置APACHE2.0.50+PHP5.0.3+MYSQL4.0.20+GD库(转)
查看>>
JAVA基础:我个人的面向对象的程序观(转)
查看>>
Linux操作系统内存管理的源码实现(转)
查看>>
RedHat 9上用iptables做NAT网关+远程使用kiwisyslog记录日志(转)
查看>>
root文件系统的一点经验(转)
查看>>
双系统 linux and winodws ,在windows重装以后(转)
查看>>
[Linux]用户及密码相关命令(转)
查看>>
FreeBSD中文化全攻略(转)
查看>>
在Linux上不带硬件安装Asterisk(转)
查看>>
UNIX(IBM AIX)系统基础知识(转)
查看>>
FC5下JRE的安装配置(转)
查看>>
从硬盘安装debian详细过程(通过chroot完成)(转)
查看>>
.bash_profile和.bashrc的什么区别(转)
查看>>
严防死守把蠕虫病毒拒绝在系统之外(转)
查看>>