import relationalStore from '@ohos.data.relationalStore'; // 导入模块
import common from '@ohos.app.ability.common';
@Entry
@Component
struct Index {
private context = getContext(this) as common.UIAbilityContext;
private store: relationalStore.RdbStore;
save = ()=>{
this.store.insert('Abc',{
NAME: '姓名'+Math.random(),
AGE: 17
}).then(res=>{
console.log('保存成功')
})
}
read = async ()=>{
let temarr = []
let cols = ['ID','NAME','AGE']
let predicates = new relationalStore.RdbPredicates("Abc"); // 确定查询的数据库
predicates.beginsWith('NAME','姓名')
const res = await this.store.query(predicates,cols)
if(res.rowCount > 0){
for(let i =0;i< res.rowCount;i++){
console.log('开始构建数据'+i)
res.goToRow(i);
const obj = {};
for(const key of cols){
console.log('当前的key的值'+key)
obj[key] = res.getString(res.getColumnIndex(key))
}
console.log(`这一行的数据是内容是`+ obj)
temarr.push(obj)
}
}
console.log('temarr'+JSON.stringify(temarr))
}
async del(){
let predicates = new relationalStore.RdbPredicates("Abc"); // 确定查询的数据库具体的表
predicates.equalTo("ID",1);
await this.store.delete(predicates);
console.log('删除成功')
}
async update(){
let predicates = new relationalStore.RdbPredicates("Abc"); // 确定查询的数据库具体的表
predicates.beginsWith('NAME','姓名')
await this.store.update({AGE: 18 }, predicates)
console.log('更新成功')
}
aboutToAppear(){
const STORE_CONFIG = {
name: 'RdbTest.db', // 数据库文件名
securityLevel: relationalStore.SecurityLevel.S1 // 数据库安全级别
};
const SQL_CREATE_TABLE = `CREATE TABLE IF NOT EXISTS Abc (
ID INTEGER PRIMARY KEY AUTOINCREMENT,
NAME TEXT NOT NULL,
AGE INTEGER,
SALARY REAL,
CODES BLOB
)`; // 建表Sql语句
relationalStore.getRdbStore(this.context, STORE_CONFIG, (err, store) => {
if (err) {
console.error(`Failed to get RdbStore. Code:${err.code}, message:${err.message}`);
return;
}
console.info(`Succeeded in getting RdbStore.`);
store.executeSql(SQL_CREATE_TABLE); // 创建数据表
console.log('数据是库创建完成'+store)
// 这里执行数据库的增、删、改、查等操作
this.store = store;
});
}
build() {
Column(){
Button('c 存入数据是').onClick(this.save)
Button('读取值 by query').onClick(()=>this.read())
Button('删除').onClick(()=>this.del())
Button('修改').onClick(()=>this.update())
}
}
}