鸿蒙HarmonyOS 关系型数据库加密及使用
·
public class MainAbilitySlice extends AbilitySlice {
//创建数据库回调
private static RdbOpenCallback callback = new RdbOpenCallback() {
@Override
public void onCreate(RdbStore store) {
store.executeSql("CREATE TABLE IF NOT EXISTS test (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, age INTEGER, salary REAL)");
}
@Override
public void onUpgrade(RdbStore store, int oldVersion, int newVersion) {
}
};
//打开数据库回调
private static final RdbOpenCallback opencallback = new RdbOpenCallback() {
@Override
public void onCreate(RdbStore rdbStore) {
}
@Override
public void onUpgrade(RdbStore rdbStore, int i, int i1) {
}
};
@Override
public void onStart(Intent intent) {
super.onStart(intent);
super.setUIContent(ResourceTable.Layout_ability_main);
Button cdb = (Button) findComponentById(ResourceTable.Id_create_db_button);
Button odb = (Button) findComponentById(ResourceTable.Id_open_db_button);
cdb.setClickedListener(c->{
//创建数据库
StoreConfig.Builder builder = new StoreConfig.Builder();
String key = "123456";
//给数据库起名 设密码 其他配置信息见另外一个文章
//地址:https://blog.csdn.net/weixin_44753443/article/details/116036669
builder.setName("RdbStoreTest.db")
.setEncryptKey(key.getBytes());
StoreConfig config = builder.build();
DatabaseHelper helper = new DatabaseHelper(MainAbilitySlice.this);
RdbStore rdbStore = helper.getRdbStore(config, 1, callback, null);
//插入数据到test表
ValuesBucket valuesBucket = new ValuesBucket();
valuesBucket.putInteger("id", 1);
valuesBucket.putString("name", "name1");
valuesBucket.putInteger("age", 28);
valuesBucket.putDouble("salary", 8000.5);
long rowid1 = rdbStore.insert("test", valuesBucket);
//System.out.println("=======rowid1:" + rowid1);
//关闭数据库
rdbStore.close();
});
odb.setClickedListener(c->{
//打开数据库前设置名字和密码
StoreConfig.Builder builder = new StoreConfig.Builder();
String key = "123456";
builder.setName("RdbStoreTest.db")
.setEncryptKey(key.getBytes());
StoreConfig config = builder.build();
DatabaseHelper helper = new DatabaseHelper(MainAbilitySlice.this);
RdbStore rdbStore = helper.getRdbStore(config, 1, opencallback, null);
//增删改查见 https://blog.csdn.net/weixin_44753443/article/details/115929425
ResultSet resultSet = rdbStore
.querySql("select id,name,age,salary from test where age=? order by salary desc",
new String[]{"28"});
for (int i = 0; i < resultSet.getRowCount(); i++) {
resultSet.goToRow(i);
System.out.println("======id:" + resultSet.getInt(resultSet.getColumnIndexForName("id")));
System.out.println("======name:" + resultSet.getString(resultSet.getColumnIndexForName("name")));
System.out.println("======age:" + resultSet.getInt(resultSet.getColumnIndexForName("age")));
System.out.println("======salary:" + resultSet.getDouble(resultSet.getColumnIndexForName("salary")));
}
});
}
@Override
public void onActive() {
super.onActive();
}
@Override
public void onForeground(Intent intent) {
super.onForeground(intent);
}
}
更多推荐



所有评论(0)