如何在 SAP BTP Java 应用里使用 SAP HANA 数据库
进入 SAP BTP cockpit:
把 CloudFoundry API endpoint 抄下来:
https://api.cf.us10.hana.ondemand.com/
收到如下输出:
Setting API endpoint to https://api.cf.us10.hana.ondemand.com/…
OK
使用 cf login 登录:
安装对应的依赖:
npm install --save-dev @sap/hdi-deploy
在项目文件夹根目录的 .cdsrc.json
文件里,添加如下的配置:
{
"build": {
"target": "."
},
"hana" : {
"deploy-format": "hdbtable"
}
}
创建一个 HANA Cloud 实例:
允许所有 ip:
创建之后,等到其处于 Running 状态:
使用如下命令行进行部署:
cds deploy --to hana:bookstore-hana
在 gen 文件夹下生成了大量的 .hdbview 文件:
除了初始化 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 应用采纳了。
打开 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 如下:
使用这个 url 能查询到刚刚生成的订单:
https://workspaces-ws-pdwk4-app1.us10.trial.applicationstudio.cloud.sap/odata/v4/OrdersService/Orders
相关文章
- Java 线程的创建和使用
- java基础知识回顾之---java StringBuffer,Stringbuilder与String的区别
- Java实现 LeetCode 80 删除排序数组中的重复项 II(二)
- java中eclipse控制台接受输入的方法
- java实现第三届蓝桥杯星期几
- Java实现 蓝桥杯 算法提高 01背包
- Java - Junit单元测试框架
- Java SPI 机制详解
- Java接口、抽象类、实体类的区别与关系
- 61. 如何使用 Java 程序通过 SAP Java Connector 调用 ABAP 系统的函数
- 如何使用 Java 程序通过 SAP Java Connector 调用 ABAP 系统的函数试读版
- SAP ABAP和Java跨域请求问题的解决方案
- SAP ABAP和Java里的弱引用(WeakReference)和软引用(SoftReference)
- SAP ABAP里存在Java List这种集合工具类么?CL_OBJECT_COLLECTION了解一下
- 使用 Java 11 安装 SAP Commerce Cloud 1905 的一些常见问题
- SAP Java Connector 正常运行所需的网络配置
- 使用 SAP Business Application Studio 搭建 CAP Java 开发环境
- 将Java应用部署到SAP云平台neo环境的两种方式
- 给 SAP BTP 创建的 Java 应用添加 Custom Event Handler 支持创建功能
- 如何给运行在 SAP BTP 上的 Java 微服务增添访问控制功能
- linux 设置java 环境
- Java千百问_05面向对象(011)_引用传递和值传递有什么差别