天天看点

如何在 SAP BTP Java 应用里使用 SAP HANA 数据库

进入 SAP BTP cockpit:

如何在 SAP BTP Java 应用里使用 SAP HANA 数据库

把 CloudFoundry API endpoint 抄下来:

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

如何在 SAP BTP Java 应用里使用 SAP HANA 数据库

收到如下输出:

Setting API endpoint to https://api.cf.us10.hana.ondemand.com/…

OK

如何在 SAP BTP Java 应用里使用 SAP HANA 数据库

使用 cf login 登录:

如何在 SAP BTP Java 应用里使用 SAP HANA 数据库

安装对应的依赖:

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

在项目文件夹根目录的 ​

​.cdsrc.json​

​ 文件里,添加如下的配置:

{
    "build": {
        "target": "."
    },
    "hana" : { 
        "deploy-format": "hdbtable" 
    }
}      
如何在 SAP BTP Java 应用里使用 SAP HANA 数据库

创建一个 HANA Cloud 实例:

如何在 SAP BTP Java 应用里使用 SAP HANA 数据库
如何在 SAP BTP Java 应用里使用 SAP HANA 数据库
如何在 SAP BTP Java 应用里使用 SAP HANA 数据库

允许所有 ip:

如何在 SAP BTP Java 应用里使用 SAP HANA 数据库

创建之后,等到其处于 Running 状态:

如何在 SAP BTP Java 应用里使用 SAP HANA 数据库

使用如下命令行进行部署:

cds deploy --to hana:bookstore-hana
如何在 SAP BTP Java 应用里使用 SAP HANA 数据库

在 gen 文件夹下生成了大量的 .hdbview 文件:

如何在 SAP BTP Java 应用里使用 SAP HANA 数据库
如何在 SAP BTP Java 应用里使用 SAP HANA 数据库

除了初始化 SAP HANA 数据库之外,cds deploy 命令还在 项目根文件夹中创建了一个名为 ​

​default-env.json​

​​ 的文件。 此文件包含一组 ​

​credentials​

​​,用于连接到由命令创建的 SAP HANA HDI 容器。 CAP Java 能够自动从此文件中获取 SAP HANA ​

​credentials​

​,并将本地运行的应用程序配置为使用 SAP HANA HDI 容器作为数据库。

将应用程序部署到云时,Cloud Foundry 将通过 Open Service Broker API 将凭据作为服务绑定提供给应用程序。 同样在这种情况下,CAP Java 将自动获取 SAP HANA 凭据并为您配置应用程序,您将在下一个教程中看到。

所描述的功能可作为 CAP Java 中的插件使用。 因此,需要在项目中添加一个额外的 Maven 依赖项。 该依赖项将能够从 default-env.json 读取 SAP HANA 服务绑定,以自动配置 SAP HANA 连接。 此外,它还包括 SAP HANA JDBC 驱动程序。

需要在 ​

​pom.xml​

​ 里增添如下依赖性:

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

使用命令行启动应用:

mvn spring-boot:run -Dspring-boot.run.profiles=cloud

Java 系统属性 -Dspring-boot.run.profiles=cloud 确保使用 SQLite 作为数据库的默认配置(仍在 application.yaml 中定义)不会被激活。

可以观察日志行 Loaded default-env.json from directory ‘/home/user/projects/bookstore’ 和 Registered primary ‘DataSource’ bean definition for connected service ‘bookstore-hana’,这表明选择了 SAP HANA 配置被 Java 应用采纳了。

如何在 SAP BTP Java 应用里使用 SAP HANA 数据库

打开 url:

https://workspaces-ws-pdwk4-app1.us10.trial.applicationstudio.cloud.sap/

使用 curl 创建一条新的订单:

curl -X POST http://localhost:8080/odata/v4/OrdersService/Orders

-H “Content-Type: application/json”

-d ‘{ “currency_code”: “USD”, “items”: [ { “book_ID”: “b7bca6dd-0497-465e-9a5a-56f244174c8c”, “amount”: 1 } ] }’

成功生成了一条订单,id 如下:

如何在 SAP BTP Java 应用里使用 SAP HANA 数据库

使用这个 url 能查询到刚刚生成的订单:

https://workspaces-ws-pdwk4-app1.us10.trial.applicationstudio.cloud.sap/odata/v4/OrdersService/Orders