一、执行过程:
首先需要获取操作数据库帮助对象 Databasehelper , 然后通过这个对象调用这个对象的getRdbStore方法 , 这个方法需三个参数 1. StoreConfig类型的参数 , 2.version(整型) , 3.抽象类 。 这个抽象类里面有两方法 onCreate 和 onUpgrade , 其中 onCreate 是在创建数据表示被调用 换句话说就是监听数据表的创建的 而 onUpgrade 是监听数据表的提升和更新的 ;调用这个方法的目的是为了得到RdbStore对象 在鸿蒙开发中这个对象是专门用来操作数据表的 , 而onCreate方法里携带了一个参数就是RdbStore 对象 。 然后就可以使用这个对象来操作数据表执行sql语句了 ,最后注意:
别忘记关闭资源RdbStore ;
二、图解过程:
三、代码实现:
xml代码:
<?xml version="1.0" encoding="utf-8"?>
<DirectionalLayout
xmlns:ohos="http://schemas.huawei.com/res/ohos"
ohos:height="match_parent"
ohos:width="match_parent"
ohos:alignment="center"
ohos:orientation="vertical">
<Button
ohos:id="$+id:sqlite_select_01_"
ohos:height="match_content"
ohos:width="match_parent"
ohos:text_size="30vp"
ohos:text="查询数据表"
/>
</DirectionalLayout>
java代码:
import com.example.server.ResourceTable;
import com.example.server.baseability.baseability;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.agp.components.Button;
import ohos.agp.components.Component;
import ohos.app.Context;
import ohos.data.DatabaseHelper;
import ohos.data.preferences.Preferences;
import ohos.data.rdb.RdbOpenCallback;
import ohos.data.rdb.RdbStore;
import ohos.data.rdb.StoreConfig;
import ohos.data.resultset.ResultSet;
public class sqliteSlice extends baseability {
public DatabaseHelper helper ;
public StoreConfig config ;
private final String NAME = "data.sqlite" ;
private RdbStore rdbStore ;
private Button select ;
// RdbStore rdbStore ;
@Override
public void onStart(Intent intent) {
super.onStart(intent);
super.setUIContent(ResourceTable.Layout_ability_sqlite);
getcpt();
event();
}
@Override
public void onActive() {
super.onActive();
}
@Override
public void onForeground(Intent intent) {
super.onForeground(intent);
}
@Override
public void getcpt() {
select = (Button)findComponentById(ResourceTable.Id_sqlite_select_01_) ;
}
@Override
public void init() {
}
@Override
public void event() {
select.setClickedListener(new Component.ClickedListener() {
@Override
public void onClick(Component component) {
create(NAME , getContext());
}
});
}
//创建表
private void create(String name , Context context){
helper = new DatabaseHelper(context) ;
config =StoreConfig.newDefaultConfig(name);
helper.getRdbStore(config, 1, new RdbOpenCallback() {
@Override
public void onCreate(RdbStore rdbStore) {
//创建表的时候调用
String SQL = "create table info (id int(10) , name varchar(30))";
String sql ="insert into info values(1, 'keven') ;";
rdbStore.executeSql(SQL);
System.out.println("info创建成功");
rdbStore.executeSql(sql);
System.out.println("插入成功");
select(rdbStore);
}
@Override
public void onUpgrade(RdbStore rdbStore, int i, int i1) {
}
});
// rdbStore = helper.getRdbStore(config, 1, callback , null); //用它来进行操作
}
public void select (RdbStore rdbStore){
String sql = "select * from info;" ;
ResultSet resultSet = rdbStore.querySql(sql, null);
if (resultSet.goToFirstRow()){
System.out.println("数据为:"+ resultSet.getInt(0) +" "+ resultSet.getString(1));
System.out.println("查询完毕");
}else {
System.out.println("查找不到");
}
}
}