SAP CAP篇二:为Service加上数据库支持

这篇具有很好参考价值的文章主要介绍了SAP CAP篇二:为Service加上数据库支持。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在篇一快速创建一个Service,基于Java的实现中,可见使用SAP CAP (Cloud Programming Model)确实可以提高开发效率。尤其是Java技术栈上,对比于之前使用Olingo框架来实现oData,使用SAP CAP真的可以做到指数级别的效率提升。

当然,篇一中介绍的Service只使用了内存来存储和读取数据。本篇将加上数据库支持。

本系列文章

SAP CAP篇一: 快速创建一个Service,基于Java的实现
SAP CAP篇二:为Service加上数据库支持
SAP CAP篇三:定义Model
SAP CAP篇四:为CAP添加Fiori Elements程序(1)
SAP CAP篇五:为CAP添加Fiori Elements程序(2)
SAP CAP篇六:为CAP添加Fiori Elements程序(3)
SAP CAP篇七:为CAP添加Fiori Launchpad入口 (Sandbox环境)
SAP CAP篇八:为CAP添加App Router并支持Fiori Launchpad (Sandbox环境)
SAP CAP篇九:升级为SAP CDS 7.0, CAP Java 2以及Spring Boot 3
SAP CAP篇十:理解Fiori UI的Annoation定义
SAP CAP篇十一:支持Media Object:图片、附件等
SAP CAP篇十二:AppRouter 深入研究

前期准备

根据SAP CAP的官方文档,CAP可以非常容易地添加数据库坚持。然而,所有的数据库中,支持得最好的当然是SAP自家的HANA数据库。可惜,SAP HANA数据库作为企业级数据库,无论版权、安装环境都不是本地环境能支持的。所以本篇中使用Sqlite作为数据库。

值得提醒的是,SAP CAP生成的Java项目,在没有指定数据库的情况下,默认使用H2 In-memory数据库。
SAP CAP篇二:为Service加上数据库支持
另外,有一个有意思的点是,SAP官方文档中提及:

The CAP Java runtime is tested with PostgreSQL 12.

但是使用PostgreSQL通常搭建一个Docker,这个虽然很容易,但是简单起见,还是使用Sqlite吧。

首先,安装sqlite数据库。在项目文件夹下运行NPM指令:

npm i -D sqlite3

其次,在Visual Studio Code中,安装额外的Plugin:

  • Sqlite Viewer
    这个Plugin允许在Visual Studio Code直接打开Sqlite文件。因为我们在这个Service中只需要对数据库进行查看,所以安装一个Viewer就足够了。

添加一个基于数据库表的Entity

创建db文件夹

在项目的根目录中,创建db文件夹。

创建schema.cds文件

创建schema.cds,并添加如下的Entity:

entity DBEntities {
    key ID : Integer;
    title  : String(111);
    descr  : String(1111);
}

初始化数据库表

CAP还支持对数据库的表进行初始化。这个初始化需要对应的csv文件。
首先,在db文件夹中,添加data文件夹。
其次,在data文件夹中添加文件DBEntities.csv

ID;title;descr
1;test1; Desc of test1
2;test2; Desc of test2

在Service中引用刚刚创建的Entity

修改Service Definition

修改Service Defintion的cds文件。

service DemoService {
    @cds.persistence.skip: true
    entity DemoEntity {
        key ID: Integer;
        title: String(111);
        descr: String(1111);
    }

    entity DBEntities as projection on DBEntities;
}

注意,这里在上篇的DemoEntity中加上了@cds.persistence.skip: true的annotation。这里的目的确保框架不需要为该Entity创建数据库表。

创建数据库

现在,可以创建数据库了。

cds deploy --to sqlite

执行上述命令之后,会在项目的根目录下创建了db.sqlite文件。

可以在Visual Studio Code打开该文件来查看对应的数据库表是不是已经创建成功。还可以查看数据库中是否已经有初始化数据。

SAP CAP篇二:为Service加上数据库支持

SAP CAP篇二:为Service加上数据库支持

这时可以发现package.json文件已经发生修改:

  "cds": {
    "requires": {
      "db": {
        "kind": "sqlite",
        "credentials": {
          "database": "db.sqlite"
        }
      }
    }
  }

修改程序,让程序使用刚刚创建的数据库文件

文章开头已经提及,默认Java项目会使用H2数据库。所以,要使用Sqlite,需要配置application.yml文件:

---
spring:
  config:
    activate:
      on-profile: sqlite
  datasource:
    url: "jdbc:sqlite:/db.sqlite"
    driver-class-name: org.sqlite.JDBC
    hikari:
      maximum-pool-size: 1

运行程序

通过Maven命令来运行程序,并指定使用sqlite:

mvn spring-boot:run -D"spring-boot.run.profiles"=sqlite

这时还可以使用Postman来进行测试,并确认数据库表是不是被更新。虽然一行代码没写,SAP CAP已经全部默认实现了。文章来源地址https://www.toymoban.com/news/detail-421195.html

到了这里,关于SAP CAP篇二:为Service加上数据库支持的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SAP CAP篇九:升级为SAP CDS 7.0, CAP Java 2以及Spring Boot 3

    SAP CAP篇一: 快速创建一个Service,基于Java的实现 SAP CAP篇二:为Service加上数据库支持 SAP CAP篇三:定义Model SAP CAP篇四:为CAP添加Fiori Elements程序(1) SAP CAP篇五:为CAP添加Fiori Elements程序(2) SAP CAP篇六:为CAP添加Fiori Elements程序(3) SAP CAP篇七:为CAP添加Fiori Launchpad入口 (Sandbox环境)

    2024年02月12日
    浏览(28)
  • 【云原生技术】云计算中的数据库管理服务(Database as a Service, DBaaS)简介

    云计算中的数据库管理服务(Database as a Service, DBaaS)是一种托管式服务,它允许用户在云环境中创建、使用和管理数据库,而无需关心底层的硬件、软件或日常维护任务。这些服务通常由云服务提供商提供,如 Amazon Web Services (AWS)、Microsoft Azure 和 Google Cloud Platform (GCP)。 主要

    2024年01月23日
    浏览(40)
  • Nacos支持达梦数据库方法

    第一步: 从https://github.com/alibaba/nacos/tree/2.1.0下载源码。 下载nacos-2.1.0 部署包 https://github.com/alibaba/nacos/tags 第二步: 修改nacos-2.1.0configsrcmainjavacomalibabanacosconfigserverconstantPropertiesConstant文件,并编译生成PropertiesConstant.class文件。 第三步: 修改nacos-2.1.0configsrcmainjav

    2024年02月07日
    浏览(32)
  • etcd底层支持的数据库有哪些

    etcd底层的数据库可以更换。在当前版本的etcd中,它使用的是BoltDB作为默认的后端存储引擎。但是,etcd提供了接口允许您更换数据库后端,以便根据需要选择更合适的存储引擎。 以下是etcd支持的一些后端数据库选项: BoltDB(默认) :BoltDB是一个嵌入式的键值存储数据库,具

    2024年02月15日
    浏览(31)
  • CYQ.Data 支持 DaMeng 达梦数据库

    达梦数据库(DMDB)是中国自主研发的关系型数据库管理系统,由达梦科技股份有限公司开发。 达梦数据库提供了企业级的数据库解决方案,广泛应用于金融、电信、政府、制造等行业领域。 达梦数据库具有以下特点和优势: 高性能:具备高性能的并发处理能力,能够支持大

    2024年03月09日
    浏览(35)
  • 看!MySQL 8.2 数据库支持读写分离啦!

    MySQL 8.2.0创新版本已于2023-10-17发布,MySQL Router 8.2 支持数据库的读/写分离,这里将在InnoDB Cluster集群中演示数如何进行读写分离,本篇内容包括:MySQL Server数据库安装、MySQL Shell安装、MySQL Router安装、InnoDB Cluster安装与读写分离演示,若您只关注读写分离的演示,可直接跳至最

    2024年02月05日
    浏览(151)
  • NineData已支持「最受欢迎数据库」PostgreSQL

    根据在 Stack Overflow 发布的 2023 开发者调研报告中显示,PostgreSQL 以 45% vs 41% 的受欢迎比率战胜 MySQL,成为新的最受欢迎的数据库。NineData 也在近期支持了 PostgreSQL,用户可以在 NineData 平台上进行创建数据库/Schema、管理用户与角色、导出数据、执行 SQL 等操作。另外,NineData

    2024年02月15日
    浏览(48)
  • CYQ.Data 支持 KingbaseES人大金仓数据库

    KingbaseES是一种关系型数据库管理系统,也被称为人大金仓数据库。KingbaseES 是北京人大金仓信息技术股份有限公司研发的,具有自主知识产权的通用数据库产品。 该产品面向事务处理类应用,兼顾各类数据分析类应用,可用做管理信息系统、业务及生产系统、决策支持系统、

    2024年03月10日
    浏览(58)
  • 往docker中cloudbeaver的容器添加达梦数据库、impala数据库连接支持(cloudbeaver添加自定义数据连接)

    cloudbeaver默认没有开放impala连接,更不会支持国产数据库了 docker安装运行cloudbeaver可以参考文章:docker安装运行CloudBeaver并设置默认语言为中文 本文跳过cloudbeaver镜像拉取,直接就开始实现自定义数据库连接功能 1.1、新建挂载的宿主机根目录 挂载的文件都放置该目录下 1.2、运

    2024年01月19日
    浏览(62)
  • Apache DolphinScheduler 支持使用 OceanBase 作为元数据库啦!

    DolphinScheduler是一个开源的分布式任务调度系统,拥有分布式架构、多任务类型、可视化操作、分布式调度和高可用等特性,适用于大规模分布式任务调度的场景。目前DolphinScheduler支持的元数据库有Mysql、PostgreSQL、H2,如果在业务中需要更好的性能和扩展性,可以在DolphinSche

    2024年02月12日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包