如何在 SAP BTP Java 应用里使用 SQLite 数据库
SAP Cloud Application Programming 模型的推薦是將 service 和 model 模型的定義分離開。
因此,我們在 db 文件夾里定義 model model.
新建一個 schema.cds 文件:
namespace sap.capire.products;using { Currency, cuid, managed, sap.common.CodeList } from '@sap/cds/common';entity Products : cuid, managed {title : localized String(111);descr : localized String(1111);stock : Integer;price : Decimal(9,2);currency : Currency;category : Association to Categories;}entity Categories : CodeList {key ID : Integer;parent : Association to Categories;children : Composition of many Categories on children.parent = $self;}內(nèi)容如下:
這里用關鍵字 entity 定義了 Products 和 Categories 兩個領域模型。其中Currency,cuid 和 CodeList 等標準類型,來自 @sap/cds/common:
localized 關鍵字可用于標記需要翻譯的元素。 存儲不同語言的翻譯和存儲默認后備翻譯的能力由 CDS 自動處理。
Associations 和 Compositions
associations 和 compositions 可用于定義實體之間的關系。 它們通常允許您在不明確使用外鍵的情況下定義這些關系。
雖然關聯(lián)定義了實體之間相當松散的耦合,但組合定義了包含關系。 組合也可以被認為是定義深層結(jié)構(gòu)。 可以沿這些結(jié)構(gòu)執(zhí)行深度插入和更新插入。
在域模型中,類別實體定義了父元素和子元素。 這啟用了類別的層次結(jié)構(gòu)。 一個類別的 children entity 被建模為一個組合。 一個包含所有子類的類別定義了一個深層嵌套結(jié)構(gòu)。 刪除一個類別將自動刪除其所有子項。 然而,一個類別的父類被建模為一個關聯(lián)。 刪除一個類別顯然不應該刪除它的父類。
cuid 和 managed 都是 aspect,后者用附加元素擴展 entity. cuid aspect 將 UUID 類型的關鍵元素 ID 添加到 entity.
managed aspect 將創(chuàng)建和修改時間戳等字段添加到 entity 內(nèi)。
我們按住 ctrl 鍵 + 左鍵,就能查看到這些 aspect 對應的實現(xiàn):
CodeLists 可用于存儲基于代碼(例如貨幣、國家或語言)的全局可翻譯定義。 特別是對于 UI,CodeList 可用于為某些輸入字段提供值幫助。
Currency 定義是一種類型。 它定義了與貨幣實體的關聯(lián)。 Currencies 實體基于 ISO 4217 并使用三個字母的字母代碼作為鍵,例如 EUR 或 USD,并提供了存儲相應貨幣符號(例如 € 或 $)的可能性。
在 service 定義里,將 domain model 里某些字段暴露出來:
下面我們需要將 domain model 部署到 sqllite 里。
首先使用命令行安裝 sqlite:
npm install --save-dev sqlite3
運行如下命令行,使用命令行將 domain model 初始化 sqlite:
cds deploy --to sqlite
下一步我們需要將 spring boot 應用同 sqlite 數(shù)據(jù)庫建立關聯(lián)關系。
打開 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 插入一條新的數(shù)據(jù):
curl -X POST http://localhost:8080/odata/v4/AdminService/Categories \ -H "Content-Type: application/json" \ -d '{"ID": 1, "name": "TechEd", "descr": "TechEd related topics", "children": [{"ID": 10, "name": "CAP Java", "descr": "Run on Java"}, {"ID": 11, "name": "CAP Node.js", "descr": "Run on Node.js"}]}'然后使用下面的 url,即可成功訪問剛剛插入的 categories 數(shù)據(jù):
https://workspaces-ws-pdwk4-app1.us10.trial.applicationstudio.cloud.sap/odata/v4/AdminService/Categories
總結(jié)
以上是生活随笔為你收集整理的如何在 SAP BTP Java 应用里使用 SQLite 数据库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 贪婪洞窟2霹雳6号在哪层(人贪婪的本质是
- 下一篇: 冯诺依曼结构计算机包括哪五大部分?