关系型数据库实现数据持久化
创建数据库
Button('创建/打开数据库')
.onClick(async ()=>{
await relationalStore.getRdbStore(getContext(),{
name: 'test.db',
securityLevel:relationalStore.SecurityLevel.S1
})
promptAction.showToast({message: '数据库创建成功'})
})

删除数据库
Button('删除数据库')
.onClick(async ()=>{
await relationalStore.deleteRdbStore(getContext(),'test.db')
promptAction.showToast({message: '数据库删除成功'})
})
创建数据表
Button('创建数据表')
.onClick(()=>{
this.RdbStore?.executeSql(this.sql)
})
查看数据表结构
Button('查看数据表')
.onClick(async ()=>{
const predicates = new relationalStore.RdbPredicates('test')
const result =await this.RdbStore?.query(predicates)
AlertDialog.show({ message: JSON.stringify(result?.columnNames)})
})

添加数据
Button('添加数据')
.onClick(async ()=>{
const id = await this.RdbStore?.insert('test',{
id: null,
name: '张三',
age: 18
})
promptAction.showToast({message: '添加数据的id为'+id})
})


查询数据
Button('查询数据')
.onClick(async ()=>{
const predicates = new relationalStore.RdbPredicates('test')
const resultSet = await this.RdbStore?.query(predicates)
console.log(`查询数据结果`, )
while (resultSet?.goToNextRow()) {
const id = resultSet.getLong(resultSet.getColumnIndex("ID"));
const name = resultSet.getString(resultSet.getColumnIndex("NAME"));
const age = resultSet.getLong(resultSet.getColumnIndex("AGE"));
console.info('数据'+`id=${id}, name=${name}, age=${age}`);
}
resultSet?.close();
})

修改数据
Button('修改数据')
.onClick(async ()=>{
const predicates = new relationalStore.RdbPredicates('test')
predicates.equalTo('id', 1)
await this.RdbStore?.update({
name: '李四',
age: 18
},predicates)
const resultSet = await this.RdbStore?.query(predicates)
while (resultSet?.goToNextRow()) {
const id = resultSet.getLong(resultSet.getColumnIndex("ID"));
const name = resultSet.getString(resultSet.getColumnIndex("NAME"));
const age = resultSet.getLong(resultSet.getColumnIndex("AGE"));
console.info('123'+`id=${id}, name=${name}, age=${age}`);
}
resultSet?.close();
})

删除数据
Button('删除数据')
.onClick(async ()=>{
const predicates = new relationalStore.RdbPredicates('test')
predicates.in('id', [1,2,3,4])
const result = await this.RdbStore?.delete(predicates)
AlertDialog.show({ message: JSON.stringify('删除结果'+result)})
})
