麒麟v10 上部署 TiDB v5.1.2 生产环境优化实践
1522
2023-04-13
基于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小时内删除侵权内容。