Bootstrap

JPA + EclipseLink + 云平台 = 运行在云端的数据库应用

JPA(Java Persistence API)的实现Provider有Hibernate,OpenJPA和EclipseLink等等。

本文介绍如何通过JPA + Eclipse连接SAP云平台上的HANA数据库实例。

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

设置数据库ID和System user的密码。

创建成功后,HANA DB实例状态为CREATING:

稍等片刻后,状态变为STARTED,可用。

2. 接下来就可以开发Java应用通过JPA操作这个云端的数据库实例了。

SAP云平台neo环境的SDK下自带了一个JPA的hello world应用,位于文件夹samples下面,名称为persistence-with-jpa:

直接import到Eclipse里,targeted Runtimes选择为Java Web Tomcat 8:

再将该应用从Eclipse部署到SAP云平台上:

部署成功后,在SAP云平台Cockpit里得到该应用的访问url:

3. 将部署完成的Java应用与第一步创建的HANA DB实例进行绑定:

绑定成功,这样该Java应用就能使用云端的HANA DB实例了。

在PC浏览器里测试。这个hello world的JPA应用只设计了一张表,包含First Name和Last Name两列。

在手机端的访问:

SAP云平台以微服务的方式提供了Document的CRUD(增删改查)操作。该微服务基于标准的CMIS协议(Content Management Interoperability Service)。

同标准的CMIS相比,SAP云平台的Document Service增添了一些功能的支持:

通过一个Hello World应用来了解如何在Java程序里消费SAP云平台的Document Service。

通过这个下载例子程序。

点击该超链接下载Java Web Tomcat 8 SDK。

例子程序位于该SDK的samples文件夹下。

将该应用部署到SAP云平台之后,访问该应用看到如下提示信息:

该提示信息是由应用的DocumentStoreServlet的goGet方法输出:

一旦点击Connect超链接之后:

调用另一个Servlet DocumentStoreConnectServlet的doGet方法,执行三个逻辑:

Step 1的Ecm即Enterprise Content Management,指SAP云平台上的Document Service。

该Document Service的实例句柄通过JNDI获得:

在web.xml里进行配置:

第一次点击Connect时,会执行下图catch分支的代码,用硬编码的密匙创建一个新的repository。第二次执行即进入第85行逻辑,因此此时repository已经存在。

第一次点击Connect的输出:

第二次的输出:

在SAP云平台的Cockpit里能够看到成功创建的repository:

如果需要删除该repository,需提供创建时硬编码的密匙abcdef0123456789。