基于Java的CAP开发学习记录-使用SAP HANA Database

到目前为止,都是使用sqlite数据库,但是实际项目几乎不可能用sqlite来跑实际业务。下一步我们将用SAP HANA Database来实现数据持久化,替换掉sqlite,是项目看起来更真实。
首先,找到API Endpoint
在trial subaccount中,点击左侧的overview
基于Java的CAP开发学习记录-使用SAP HANA Database
找到API Endpoint之后,重新打开一个控制台,设置api

cf api https://api.cf.eu10.hana.ondemand.com/

基于Java的CAP开发学习记录-使用SAP HANA Database
然后用当前登录用户登陆。

cf login

登陆成功之后会显示当前的用户信息。
基于Java的CAP开发学习记录-使用SAP HANA Database
下面开始配置数据库。
在项目根目录下使用npm安装依赖

npm install --save-dev @sap/hdi-deploy

在项目根目录下找到.cdsrc.json并为其添加hana属性,值为{ "deploy-format": "hdbtable" },最后看起来大概是这个样子。

{
    "build": {
        "target": "."
    },
    "hana" : { 
        "deploy-format": "hdbtable"
    }
}

接下来执行命令初始化数据库,cds deploy --to hana:bookstore-hana
基于Java的CAP开发学习记录-使用SAP HANA Database

过程中可能出现FAILED,因为之前没有创建过数据库的原因,不用在意,直接忽略。
基于Java的CAP开发学习记录-使用SAP HANA Database

命令执行完成之后,在项目根目录下会出现一个default-env.json,这个文件包含了连接数据库的信心。CAP Java通过读取这个文件获得相关的凭证,然后连接HANA数据看。为了实现这个功能,我们需要添加一个依赖。
打开在srv的文件夹下的pom.xml(注意不是根目录下的pom.xml),在<dependencies>下加入依赖。

<dependency>
  <groupId>com.sap.cds</groupId>
  <artifactId>cds-feature-hana</artifactId>
</dependency>

cds-feature-hana包含了SAP HANA JDBC driver和读取default-env.json的功能。
启动项目,本次启动需要指定环境,mvn spring-boot:run -Dspring-boot.run.profiles=cloud。启动成功后我们再查看订单,发现原来的订单已经没有了,说明现在服务连的是HANA的数据库了。
添加数据测试一下。

https://workspaces-ws-5bftf-app1.eu10.trial.applicationstudio.cloud.sap/odata/v4/OrdersService/Orders
{
    "currency_code": "USD",
    "items": [
        {
            "book_ID": "b7bca6dd-0497-465e-9a5a-56f244174c8c",
            "amount": 1
        }
    ]
}

查询结果,/odata/v4/OrdersService/Orders?$expand=items
基于Java的CAP开发学习记录-使用SAP HANA Database
已经成功连接到HANA 数据库了。

上一篇:10分钟教你用eclipse上传代码到GitHub


下一篇:kubernetes集群系列资料12--ingress介绍