当前位置: 首页 > 后端技术 > Java

如何在SAPBTPJava应用程序中使用SQLite数据库

时间:2023-04-01 13:23:21 Java

SAPCloudApplicationProgramming模型建议是将服务和模型模型的定义分开。因此,我们在db文件夹中定义模型model。新建schema.cds文件:namespacesap.capire.products;使用来自'@sap/cds/common'的{Currency,cuid,managed,sap.common.CodeList};实体产品:cuid,托管{标题:本地化字符串(111);描述:本地化字符串(1111);库存:整数;价格:小数(9,2);货币:货币;category:与类别的关联;CodeList{密钥ID:整数;parent:与类别的关联;children:children.parent=$self;许多类别的组合}内容如下:这里定义了两个领域模型Products和Categories,定义了关键字entity。其中,Currency、cuid、CodeList等标准类型,来自@sap/cds/common:localized关键字,可以用来标记需要翻译的元素。存储不同语言的翻译和存储默认后备翻译的能力由CDS自动处理。关联和组合关联和组合可用于定义实体之间的关系。它们通常允许您在不显式使用外键的情况下定义这些关系。关联定义实体之间相当松散的耦合,而组合定义包含关系。组合也可以被认为是定义深层结构。可以沿着这些结构执行深插入和向上插入。在域模型中,类别实体定义父元素和子元素。这启用了类别的层次结构。一类子实体被建模为一个组合。包含所有子类的类别定义了一个深度嵌套的结构。删除类别将自动删除其所有子项。但是,类别的父项被建模为关联。删除类别显然不应删除其父类别。cuid和managed都是使用附加元素扩展实体的方面。cuid方面将UUID类型的关键元素ID添加到实体。托管方面向实体添加创建和修改时间戳等字段。我们可以通过按住ctrl键+左键来查看这些方面的实现:CodeLists可用于存储基于代码(例如货币、国家或语言)的全球可翻译定义。特别是对于UI,CodeList可以用来为某些输入字段提供取值帮助。货币被定义为一种类型。它定义了与货币实体的关联。货币实体基于??ISO4217,使用三个字母的字母代码作为键,例如EUR或USD,并提供存储相应货币符号(例如或$)的可能性。在服务定义中,暴露域模型中的一些字段:接下来,我们需要将域模型部署到sqllite。首先使用命令行安装sqlite:npminstall--save-devsqlite3运行如下命令行,使用命令行初始化领域模型sqlite:cdsdeploy--tosqlite接下来我们需要关联springboot应用与sqlite数据库。打开main/resources/application.yaml文件:---spring:profiles:defaultdatasource:url:"jdbc:sqlite:/home/user/projects/products-service/sqlite.db"driver-class-name:org.sqlite.JDBCinitialization-mode:neverhikari:maximum-pool-size:1使用curl插入一条新数据:curl-XPOSThttp://localhost:8080/odata/v4/AdminService/Categories\-H"Content-Type:application/json"\-d'{"ID":1,"name":"TechEd","descr":"TechEd相关主题","children":[{"ID":10,"name":"CAPJava","descr":"RunonJava"},{"ID":11,"name":"CAPNode.js","descr":"RunonNode.js"}]}'然后使用如下url成功访问刚刚插入的categories数据:https://workspaces-ws-pdwk4-a...