精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于SQLite的鴻蒙的關系型數據庫使用

鴻蒙系統HarmonyOS ? 來源:linhy0614 ? 作者:linhy0614 ? 2021-01-20 11:48 ? 次閱讀

這篇我們就來介紹下鴻蒙系統的數據庫如何使用 鴻蒙的關系型數據庫是基于SQLite的實現,官方提供了關系型數據庫實現和基于對象的關系型數據庫兩種數據庫操作,本文會指導大家如何分別使用這兩種數據庫操作,來對數據庫進行簡單的CRUD操作。

關系型數據庫

關系型數據庫(Relational Database,RDB)是一種基于關系模型來管理數據的數據庫。HarmonyOS關系型數據庫基于SQLite組件提供了一套完整的對本地數據庫進行管理的機制,對外提供了一系列的增、刪、改、查接口,也可以直接運行用戶輸入的SQL語句來滿足復雜的場景需要。運作機制如圖:

pIYBAGAHp26AaK2FAAE3c435YvM771.png

1、創建數據庫

//設置數據庫為RdbStore.db

StoreConfig config = StoreConfig.newDefaultConfig(“RdbStore.db”);

DatabaseHelper helper = new DatabaseHelper(getContext());

RdbStore rdbStore = helper.getRdbStore(config, 1, new RdbOpenCallback() {

@Override

public void onCreate(RdbStore rdbStore) {

//創建表

rdbStore.executeSql(“create table if not exists User(userId integer primary key autoincrement,userName text)”);

//更多建表語句可以在這里寫

}

@Override

public void onUpgrade(RdbStore rdbStore, int i, int i1) {

//升級數據庫操作

}

});

2、插入數據

//使用鍵值對方式插入數據庫rdbCreateDb()獲取的就是創建的時候生成的rdbStore

ValuesBucket values = new ValuesBucket();

values.putInteger(“userId”,1);

values.putString(“userName”,“name1”);

long id = rdbCreateDb().insert(“User”,values);

//使用最原始的sql語句插入數據

rdbCreateDb().executeSql(“insert into User (userId,userName) values (2,‘name2’)”);

3、刪除數據

RdbPredicates rdbPredicates = new RdbPredicates(“User”).equalTo(“userName”,“name1”);

int i = rdbCreateDb().delete(rdbPredicates);

4、查詢數據

String[] columns = new String[]{“userId”,“userName”};

RdbPredicates rdbPredicates = new RdbPredicates(“User”);//構建查詢謂詞

ResultSet resultSet = rdbCreateDb().query(rdbPredicates,columns);

while (resultSet.goToNextRow()){

int userId = resultSet.getInt(resultSet.getColumnIndexForName(“userId”));

String userName = resultSet.getString(resultSet.getColumnIndexForName(“userName”));

HiLog.warn(new HiLogLabel(HiLog.LOG_APP, 0, “===demo===”), “查詢到userId=” + userId + “ userName=” +userName);

}

5、修改數據

RdbPredicates rdbPredicates = new RdbPredicates(“User”).equalTo(“userName”,“name2”);

ValuesBucket values = new ValuesBucket();

values.putString(“userName”,“name3”);

//更新數據

rdbCreateDb().update(values,rdbPredicates);

增刪改查操作都可以通過rdbStore的executeSql方法,直接執行sql語句執行。語句語法采用SQLite的語法。

對象關系型數據庫

HarmonyOS對象關系映射(Object Relational Mapping,ORM)數據庫是一款基于SQLite的數據庫框架,屏蔽了底層SQLite數據庫的SQL操作,針對實體和關系提供了增刪改查等一系列的面向對象接口。應用開發者不必再去編寫復雜的SQL語句, 以操作對象的形式來操作數據庫,提升效率的同時也能聚焦于業務開發。運作機制如圖:

pIYBAGAHp4eAPmPbAAF9qY8AI7o439.png

1、環境配置

1、添加相應的jar包到模塊libs里面,相關文件可以在demo中找到。

o4YBAGAHp5OAbCljAAEDnn9HB8s659.png

2、在模塊的build.gradle中的對應添加注解引用

//開啟注解

ohos {

compileOptions {

annotationEnabled true

}

}

//添加注解處理引用

dependencies {

annotationProcessor files(“。/libs/orm_annotations_java.jar”, “。/libs/orm_annotations_processor_java.jar”)

}

2、初始化數據庫配置

1、新建數據庫實現類

//entities里放置的是表對應的javabean,version對應數據庫版本

@Database(entities = {OrmUser.class}, version = 1)

public abstract class OrmDBTest extends OrmDatabase {

@Override

public RdbOpenCallback getHelper() {

return new RdbOpenCallback() {

@Override

public void onCreate(RdbStore rdbStore) {

//創建成功后執行操作

}

@Override

public void onUpgrade(RdbStore rdbStore, int oldVersion, int newVersion) {

//數據庫升級需要執行的操作

}

};

}

}

2、新建表對應的JavaBean

//對應的數據庫表名寫在注解里,另外記得get/set要寫齊全

@Entity(tableName = “OrmUser”)

public class OrmUser extends OrmObject {

@PrimaryKey(autoGenerate = true)

private int id;

private int userId;

private String userName;

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public int getUserId() {

return userId;

}

public void setUserId(int userId) {

this.userId = userId;

}

public String getUserName() {

return userName;

}

public void setUserName(String userName) {

this.userName = userName;

}

}

3、ORM對數據庫的基本操作

1、創建數據庫上下文操作對象

private OrmContext ormCreateDb() {

DatabaseHelper databaseHelper = new DatabaseHelper(getContext());

OrmContext ormContext = databaseHelper.getOrmContext(“OrmDBTest”, “OrmDBTest.db”, OrmDBTest.class);

return ormContext;

}

2、增

OrmUser ormUser = new OrmUser();

ormUser.setUserId(1);

ormUser.setUserName(“name1”);

boolean isSuccess = ormCreateDb().insert(ormUser);

ormCreateDb().flush();

3、查

//查詢userId = 1的數據

OrmPredicates ormPredicates = ormCreateDb().where(OrmUser.class).equalTo(“userId”,“1”);

List《OrmUser》 ormUsers = ormCreateDb().query(ormPredicates);

4、改

//將查詢出來的數據值修改后更新到數據庫

OrmUser ormUser = ormQuery();

if (ormUser == null){

return;

}

ormUser.setUserName(“name2”);

ormCreateDb().update(ormUser);

ormCreateDb().flush();

5、刪

//將查詢出來的數據值從數據庫中刪除

OrmUser ormUser = ormQuery();

if (ormUser == null){

return;

}

ormCreateDb().delete(ormUser);

ormCreateDb().flush();

總結

數據庫中連接池的最大數量是4個,同一時間只能支持一個寫操作!對象關系型數據的數據庫類型只支持基礎數據類型及Date、Time、Timestamp、Calendar、Blob(二進制大對象)、Clob(字符大對象) 文中相關的代碼在git:https://github.com/maolinnan/HarmonyosClass

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • SQL
    SQL
    +關注

    關注

    1

    文章

    750

    瀏覽量

    43900
  • 數據庫
    +關注

    關注

    7

    文章

    3711

    瀏覽量

    64023
  • 關系型數據庫

    關注

    0

    文章

    7

    瀏覽量

    2324
  • HarmonyOS
    +關注

    關注

    79

    文章

    1946

    瀏覽量

    29732
收藏 人收藏

    評論

    相關推薦

    有個excel數據表 想導入鴻蒙數據庫,求sqlite數據使用文檔?

    有個excel 數據表 想導入鴻蒙數據庫, 求sqlite數據使用文檔?
    發表于 06-09 10:10

    什么是關系數據庫

    什么是關系數據庫 關系數據庫簡介   關系
    發表于 06-17 07:38 ?9094次閱讀

    什么是非關系數據庫

    什么是非關系數據庫 談到非關系數據庫設計的難點,朱海峰說:“我們可以從一些場景來看這個問題
    發表于 06-17 15:49 ?3103次閱讀

    鴻蒙數據庫知識點學習

    鴻蒙數據庫知識點,了解了存儲機制并且嘗試了使用,發現鴻蒙數據庫真的做到了應有盡有,操作還簡單的地步。 鴻蒙
    的頭像 發表于 09-06 09:34 ?3022次閱讀

    怎么創建SQLite數據庫

    大家好,今天給大家分享一篇如何創建SQLite數據庫的文章。
    的頭像 發表于 02-22 16:21 ?5793次閱讀
    怎么創建<b class='flag-5'>SQLite</b><b class='flag-5'>數據庫</b>

    OpenHarmony關系數據庫概述

    關系數據庫(Relational Database, 以下簡稱RDB)是一種基于關系模型來管理數據
    的頭像 發表于 03-28 18:08 ?892次閱讀
    OpenHarmony<b class='flag-5'>關系</b><b class='flag-5'>型</b><b class='flag-5'>數據庫</b>概述

    關系數據庫的基本原理(什么是關系數據庫

    什么是關系數據庫關系數據庫,簡稱 RDBMS是由許多
    的頭像 發表于 07-10 09:06 ?1281次閱讀

    SQLite數據庫的特點 SQLite數據庫簡單介紹

    SQLite數據庫的特點 SQLite數據庫簡單介紹 SQLite數據庫是一種輕型的嵌入式
    的頭像 發表于 08-28 16:40 ?5213次閱讀

    如何創建一個Sqlite數據庫

    如何創建一個Sqlite數據庫Sqlite是一種輕量級、占用空間小、操作速度快的嵌入式數據庫,使用它可以方便地存儲和管理數據
    的頭像 發表于 08-28 16:40 ?4294次閱讀

    什么是Sqlite數據庫

    什么是Sqlite數據庫?? Sqlite數據庫是一種輕量級的關系
    的頭像 發表于 08-28 16:41 ?2295次閱讀

    SQLite數據庫能共享嗎?

    SQLite數據庫能共享嗎? SQLite數據庫是一種輕量級的數據庫管理系統,它被廣泛使用于移動應用、本地桌面應用以及小型Web應用中。
    的頭像 發表于 08-28 16:41 ?2263次閱讀

    SQLite數據庫與python的區別

    SQLite數據庫與python的區別 SQLite是一種輕量級關系數據庫管理系統,是一個嵌入
    的頭像 發表于 08-28 16:41 ?724次閱讀

    SQLite數據庫增刪改查

    SQLite數據庫增刪改查? SQLite是一種輕量級的RDBMS(關系數據庫管理系統),具有
    的頭像 發表于 08-28 17:09 ?1067次閱讀

    SQLite數據庫文件頭部特征

    SQLite數據庫文件頭部特征 SQLite是一種輕量級關系數據庫管理系統,被廣泛應用于移動設
    的頭像 發表于 08-28 17:15 ?919次閱讀

    鴻蒙開發接口數據管理:【@ohos.data.rdb (關系數據庫)】

    關系數據庫(Relational Database,RDB)是一種基于關系模型來管理數據數據庫
    的頭像 發表于 06-10 18:35 ?1046次閱讀