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

简介: 如何在 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

相关文章
|
1天前
|
传感器 机器人 Java
使用Java构建机器人应用
使用Java构建机器人应用
5 0
|
1天前
|
分布式计算 负载均衡 Java
构建高可用性Java应用:介绍分布式系统设计与开发
构建高可用性Java应用:介绍分布式系统设计与开发
6 0
|
1天前
|
设计模式 算法 Java
设计模式在Java开发中的应用
设计模式在Java开发中的应用
8 0
|
1天前
|
SQL Java 数据库连接
Java数据库编程实践:连接与操作数据库
Java数据库编程实践:连接与操作数据库
8 0
|
2天前
|
分布式计算 Java 大数据
Java语言主要应用领域
【5月更文挑战第7天】Java在嵌入式系统中以低至130KB的占用展现可靠性,实现“一次编写,到处运行”。在大数据领域,Java通过Hadoop、Hbase、Accumulo和ElasticSearch等工具发挥关键作用。Java也是Eclipse、IntelliJ IDEA和NetBeans等开发工具的基础。广泛应用于电商网站和金融服务器系统,即便在J2ME式微后,仍能在部分低端手机中找到其踪影。
14 4
|
2天前
|
算法 Java 机器人
Java在嵌入式领域的应用
【5月更文挑战第7天】Java广泛应用于消费产品(如智能电视、机顶盒、数码相机)、工业控制(PLC、DCS、FCS)、通信(交换机、路由器、基站)、智能仪器、机器人、计算机外部设备、军事电子及太空科学,涵盖从家用到高科技领域的嵌入式系统开发。
14 4
|
7天前
|
关系型数据库 MySQL Linux
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
|
8天前
|
SQL 关系型数据库 MySQL
【MySQL-5】DDL的数据库操作:查询&创建&删除&使用(可cv代码+演示图)
【MySQL-5】DDL的数据库操作:查询&创建&删除&使用(可cv代码+演示图)
|
8天前
|
SQL 关系型数据库 MySQL
【MySQL-1】理解关系型数据库&数据的数据模型
【MySQL-1】理解关系型数据库&数据的数据模型
|
9天前
|
关系型数据库 MySQL 数据库
Docker数据库Mysql
Docker数据库Mysql