色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

    文章

    762

    瀏覽量

    44117
  • 數據庫
    +關注

    關注

    7

    文章

    3794

    瀏覽量

    64360
  • 關系型數據庫

    關注

    0

    文章

    7

    瀏覽量

    2333
  • HarmonyOS
    +關注

    關注

    79

    文章

    1973

    瀏覽量

    30143
收藏 人收藏

    評論

    相關推薦

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

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

    什么是關系數據庫

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

    什么是非關系數據庫

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

    鴻蒙數據庫知識點學習

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

    怎么創建SQLite數據庫

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

    OpenHarmony關系數據庫概述

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

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

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

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

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

    如何創建一個Sqlite數據庫

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

    什么是Sqlite數據庫?

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

    SQLite數據庫能共享嗎?

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

    SQLite數據庫與python的區別

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

    SQLite數據庫增刪改查

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

    SQLite數據庫文件頭部特征

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

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

    關系數據庫(Relational Database,RDB)是一種基于關系模型來管理數據數據庫
    的頭像 發表于 06-10 18:35 ?1300次閱讀
    主站蜘蛛池模板: 国产精亚洲视频综合区| 在镜头里被CAO翻了H| 强行撕开衣服捏胸黄文| 久久re视频这里精品09首页| 国产精品A久久久久久久久| yellow在线观看免费高清的日本| 真实国产乱子伦精品一区二区三区| 亚洲免费国产| 亚洲免费观看视频| 午夜伦理在线观看| 入禽太深免费观看| 乳女教师欲乱动漫无修版动画 | 最新无码国产在线视频| 亚洲视频中文字幕在线观看| 亚洲不卡高清免v无码屋| 胸太大被男同桌吃好爽| 午夜人妻理论片天堂影院| 忘忧草秋观看未满十八| 挺进绝色老师的紧窄小肉六| 天堂无码人妻精品AV一区| 台湾佬休闲中性娱乐网| 婷婷开心激情综合五月天| 亚欧日韩毛片在线看免费网站| 无码欧美XXXXX在线观看裸| 無码一区中文字幕少妇熟女H| 桃花论坛POWERED2019| 亚洲 日本 中文字幕 制服| 亚洲XXX午休国产熟女屁| 亚洲一区二区女搞男| 亚洲影院在线播放| 在线播放性xxx欧美| 607080老太太AW| 99久久免费热在线精品| 啊轻点啊再深点视频免费| 高清日本片免费观看| 国产人成无码视频在线观看| 好男人好资源在线观看| 久久综合狠狠综合狠狠| 破苞流血哭泣 magnet| 色欲天天婬色婬香影院| 亚洲qingse中文字幕久久|