DevEco studio 简单数据库
新手最近刚开始学鸿蒙开发,到数据库这里也查了挺多资料的,查完也挺恼火的,五六个内容基本完全相同的文章作者都加了自己原创然后一贴,细节也什么都不说,这里我今天搞懂了一些,希望对像我这样的初学者有一些帮助,少走一些弯路。
两种本地数据库创建方式
鸿蒙官网样例Demo(rdbdatabase 关系型数据库)
package com.example.rdbdatabase;
import com.example.rdbdatabase.slice.MainAbilitySlice;
import ohos.aafwk.ability.Ability;
import ohos.aafwk.content.Intent;
import ohos.data.DatabaseHelper;
import ohos.data.distributed.common.Query;
import ohos.data.rdb.*;
import ohos.data.resultset.ResultSet;
import javax.security.auth.callback.CallbackHandler;
import java.util.function.Predicate;
public class MainAbility extends Ability {
RdbOpenCallback callback = new RdbOpenCallback() {
@Override
public void onCreate(RdbStore rdbStore) {
rdbStore.executeSql("CREATE TABLE IF NOT EXISTS rdbdemo "+
"(ID INTEGER PRIMARY KEY,name TEXT NOT NULL,age INTEGER NOT NULL)");
}
@Override
public void onUpgrade(RdbStore rdbStore, int i, int i1) {
}
};
@Override
public void onStart(Intent intent) {
super.onStart(intent);
super.setMainRoute(MainAbilitySlice.class.getName());
StoreConfig config = StoreConfig.newDefaultConfig("demo.db"); //配置数据库信息,该处采用默认。
DatabaseHelper helper = new DatabaseHelper(this); //我理解是一个生成操作数据库的对象,核心
//通过helper对象找到数据库,若没有则创建,在创建数据库时回调 用于数据库中表的初始化
RdbStore rdbStore = helper.getRdbStore(config, 1, callback, null);
//插入数据
this.rdb_insert(1,"zhang_san",20,rdbStore);
this.rdb_insert(3,"li_si",27,rdbStore);
this.rdb_insert(7,"wang_wu",33,rdbStore);
//查询数据
//两种方式,接口提供了使用原始的sql语句以及通过”谓词“的方式
//原始sql语句
System.out.println("下面通过原始sql语句的方式");
ResultSet resultSet = rdbStore.querySql("select id,name from rdbdemo where age>? order by ID desc", new String[]{"25"});
if(resultSet ==null)System.out.println("failed to query!");
for(int i=0;i |