鸿蒙开发实战系列之五:鸿蒙系统原生数据库 | 您所在的位置:网站首页 › 鸿蒙系统WIFI密码无法粘贴 › 鸿蒙开发实战系列之五:鸿蒙系统原生数据库 |
鸿蒙开发实战系列之一:鸿蒙开发实战系列之一:圆角 鸿蒙开发实战系列之二:鸿蒙开发实战系列之二:事件总线EventBus/RxBus 鸿蒙开发实战系列之三:鸿蒙开发实战系列之三:网络请求(原生+ Retrofit) 鸿蒙开发实战系列之四:鸿蒙开发实战系列之四:数据库NoSQL-ObjectBox的使用 前言上文介绍了ObjectBox,属于神器,但是作为一个合格的码农,上的了厅堂,下得了猪圈,神器好用,菜刀也是要会使的嘛,这篇我们就来介绍下鸿蒙系统的数据库如何使用 鸿蒙的关系型数据库是基于SQLite的实现,官方提供了关系型数据库实现和基于对象的关系型数据库两种数据库操作,本文会指导大家如何分别使用这两种数据库操作,来对数据库进行简单的CRUD操作。 关系型数据库关系型数据库(Relational Database,RDB)是一种基于关系模型来管理数据的数据库。HarmonyOS关系型数据库基于SQLite组件提供了一套完整的对本地数据库进行管理的机制,对外提供了一系列的增、删、改、查接口,也可以直接运行用户输入的SQL语句来满足复杂的场景需要。运作机制如图: 增删改查操作都可以通过rdbStore的executeSql方法,直接执行sql语句执行。语句语法采用SQLite的语法。 对象关系型数据库HarmonyOS对象关系映射(Object Relational Mapping,ORM)数据库是一款基于SQLite的数据库框架,屏蔽了底层SQLite数据库的SQL操作,针对实体和关系提供了增删改查等一系列的面向对象接口。应用开发者不必再去编写复杂的SQL语句, 以操作对象的形式来操作数据库,提升效率的同时也能聚焦于业务开发。运作机制如图: 1、添加相应的jar包到模块libs里面,相关文件可以在demo中找到。 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 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 这是本系列的第五篇,后面还会为大家带来更多的鸿蒙干货,敬请期待…。 如果文章对您有一点启发的话,希望您能点个赞,来一波关注。 |
CopyRight 2018-2019 实验室设备网 版权所有 |