HarmonyOS 對象關(guān)系映射(Object Relational Mapping,ORM)數(shù)據(jù)庫是一款基于 SQLite 的數(shù)據(jù)庫框架,屏蔽了底層 SQLite 數(shù)據(jù)庫的 SQL 操作,針對實體和關(guān)系提供了增刪改查等一系列的面向?qū)ο蠼涌?。?yīng)用開發(fā)者不必再去編寫復雜的 SQL 語句, 以操作對象的形式來操作數(shù)據(jù)庫,提升效率的同時也能聚焦于業(yè)務(wù)開發(fā)。

專業(yè)領(lǐng)域包括成都網(wǎng)站制作、成都網(wǎng)站設(shè)計、購物商城網(wǎng)站建設(shè)、微信營銷、系統(tǒng)平臺開發(fā), 與其他網(wǎng)站設(shè)計及系統(tǒng)開發(fā)公司不同,創(chuàng)新互聯(lián)的整合解決方案結(jié)合了幫做網(wǎng)絡(luò)品牌建設(shè)經(jīng)驗和互聯(lián)網(wǎng)整合營銷的理念,并將策略和執(zhí)行緊密結(jié)合,為客戶提供全網(wǎng)互聯(lián)網(wǎng)整合方案。
基本概念
- 對象關(guān)系映射數(shù)據(jù)庫的三個主要組件
:
- 數(shù)據(jù)庫:被開發(fā)者用 @Database 注解,且繼承了 OrmDatabase 的類,對應(yīng)關(guān)系型數(shù)據(jù)庫。
- 實體對象:被開發(fā)者用 @Entity 注解,且繼承了 OrmObject 的類,對應(yīng)關(guān)系型數(shù)據(jù)庫中的表。
- 對象數(shù)據(jù)操作接口:包括數(shù)據(jù)庫操作的入口 OrmContext 類和謂詞接口(OrmPredicate)等。
- 謂詞
數(shù)據(jù)庫中是用來代表數(shù)據(jù)實體的性質(zhì)、特征或者數(shù)據(jù)實體之間關(guān)系的詞項,主要用來定義數(shù)據(jù)庫的操作條件。對象關(guān)系映射數(shù)據(jù)庫將 SQLite 數(shù)據(jù)庫中的謂詞封裝成了接口方法供開發(fā)者調(diào)用。開發(fā)者通過對象數(shù)據(jù)操作接口,可以訪問到應(yīng)用持久化的關(guān)系型數(shù)據(jù)。
- 對象關(guān)系映射數(shù)據(jù)庫
通過將實例對象映射到關(guān)系上,實現(xiàn)使用操作實例對象的語法,來操作關(guān)系型數(shù)據(jù)庫。它是在 SQLite 數(shù)據(jù)庫的基礎(chǔ)上提供的一個抽象層。
- SQLite 數(shù)據(jù)庫
一款輕型的數(shù)據(jù)庫,是遵守 ACID 的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。
運作機制
對象關(guān)系映射數(shù)據(jù)庫操作是基于關(guān)系型數(shù)據(jù)庫操作接口完成的,實際是在關(guān)系型數(shù)據(jù)庫操作的基礎(chǔ)上又實現(xiàn)了對象關(guān)系映射等特性。因此對象關(guān)系映射數(shù)據(jù)庫跟關(guān)系型數(shù)據(jù)庫一樣,都使用 SQLite 作為持久化引擎,底層使用的是同一套數(shù)據(jù)庫連接池和數(shù)據(jù)庫連接機制。
使用對象關(guān)系映射數(shù)據(jù)庫的開發(fā)者需要先配置實體模型與關(guān)系映射文件。應(yīng)用數(shù)據(jù)管理框架提供的類生成工具會解析這些文件,生成數(shù)據(jù)庫幫助類,這樣應(yīng)用數(shù)據(jù)管理框架就能在運行時,根據(jù)開發(fā)者的配置創(chuàng)建好數(shù)據(jù)庫,并在存儲過程中自動完成對象關(guān)系映射。開發(fā)者再通過對象數(shù)據(jù)操作接口,如 OrmContext 接口和謂詞接口等操作持久化數(shù)據(jù)庫。
對象數(shù)據(jù)操作接口提供一組基于對象映射的數(shù)據(jù)操作接口,實現(xiàn)了基于 SQL 的關(guān)系模型數(shù)據(jù)到對象的映射,讓用戶不需要再和復雜的 SQL 語句打交道,只需簡單地操作實體對象的屬性和方法。對象數(shù)據(jù)操作接口支持對象的增刪改查操作,同時支持事務(wù)操作等。
圖1 對象關(guān)系映射數(shù)據(jù)庫運作機制
默認配置
- 如果不指定數(shù)據(jù)庫的日志模式,那么系統(tǒng)默認日志方式是 WAL(Write Ahead Log)模式。
- 如果不指定數(shù)據(jù)庫的落盤模式,那么系統(tǒng)默認落盤方式是 FULL模式。
- HarmonyOS 數(shù)據(jù)庫使用的共享內(nèi)存默認大小是 2MB。
約束與限制
HarmonyOS 對象關(guān)系映射數(shù)據(jù)庫是建立在 HarmonyOS 關(guān)系型數(shù)據(jù)庫的基礎(chǔ)之上的,所以關(guān)系型數(shù)據(jù)庫的一些約束與限制請參考約束與限制。
此外當開發(fā)者建立實體對象類時,對象屬性的類型可以在下表的類型中選擇。不支持使用自定義類型。
| 類型名稱 | 描述 | 初始值 |
|---|---|---|
| Integer | 封裝整型 | null |
| int | 整型 | 0 |
| Long | 封裝長整型 | null |
| long | 長整型 | 0L |
| Double | 封裝雙精度浮點型 | null |
| double | 雙精度浮點型 | 0 |
| Float | 封裝單精度浮點型 | null |
| float | 單精度浮點型 | 0 |
| Short | 封裝短整型 | null |
| short | 短整型 | 0 |
| String | 字符串型 | null |
| Boolean | 封裝布爾型 | null |
| boolean | 布爾型 | 0 |
| Byte | 封裝字節(jié)型 | null |
| byte | 字節(jié)型 | 0 |
| Character | 封裝字符型 | null |
| char | 字符型 | ' ' |
| Date | 日期類 | null |
| Time | 時間類 | null |
| Timestamp | 時間戳類 | null |
| Calendar | 日歷類 | null |
| Blob | 二進制大對象 | null |
| Clob | 字符大對象 | null |
文章名稱:創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OS對象關(guān)系映射數(shù)據(jù)庫概述
文章網(wǎng)址:http://www.5511xx.com/article/cdespds.html


咨詢
建站咨詢
