基于SQLite的鸿蒙的关系型数据库使用

网友投稿 1522 2023-04-13

基于SQLite的鸿蒙的关系型数据库使用

基于SQLite的鸿蒙的关系型数据库使用

关系型数据库

1、创建数据库

//设置数据库为RdbStore.db

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

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.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的语法。

对象关系型数据库

1、环境配置

1、添加相应的jar包到模块libs里面,相关文件可以在demo中找到。

2、在模块的build.gradle中的对应添加注解引用

//开启注解

ohos {

compileOptions {

annotationEnabled true

}

}

//添加注解处理引用

dependencies {

}

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

//数据库升级需要执行的操作

}

};

}

}

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();

总结

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:数据库中的OLTP、OLAP分别是指什么?OLTP市场规模:关系型数据库未来发展趋势
下一篇:弹性扩容是什么意思?弹性扩容需要用到哪些技术?
相关文章