HarmonyOS鸿蒙Next中ohos/dataorm怎么使用,从初始化到创建表,到插入数据

HarmonyOS鸿蒙Next中ohos/dataorm怎么使用,从初始化到创建表,到插入数据 我看文档只有注解的描述,没有看到怎么才能创建表,这个初始化会报错有点没看懂他是怎么创建表的,有没有大佬给点思路万分感谢🙏🙏🙏

cke_667.png


更多关于HarmonyOS鸿蒙Next中ohos/dataorm怎么使用,从初始化到创建表,到插入数据的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

我直接下载源码了,下载源码直接一目了然看得懂了

更多关于HarmonyOS鸿蒙Next中ohos/dataorm怎么使用,从初始化到创建表,到插入数据的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS Next中使用ohos/data/orm:

  1. 初始化:创建DatabaseConfig配置数据库名称和存储路径,通过RdbStore.getRdbStore()获取RdbStore实例。
  2. 创建表:在RdbStore.executeSql()中执行CREATE TABLE语句,或使用@DatabaseTable@DatabaseField注解装饰实体类。
  3. 插入数据:通过RdbStore.insert()方法插入ValuesBucket数据,或使用实体类对象配合OrmContext.insert()操作。

关键类:RdbStore、ValuesBucket、OrmContext。需在config.json中声明数据库配置。

在HarmonyOS Next中使用ohos.data.relationalStore(DataORM)进行数据库操作的基本流程如下:

  1. 初始化数据库:
import relationalStore from '[@ohos](/user/ohos).data.relationalStore';

const config = {
  name: 'myDatabase.db',
  securityLevel: relationalStore.SecurityLevel.S1
};
let store;
relationalStore.getRdbStore(context, config, (err, rdbStore) => {
  store = rdbStore;
});
  1. 创建表(通过执行SQL):
const sql = `CREATE TABLE IF NOT EXISTS user (
  id INTEGER PRIMARY KEY AUTOINCREMENT,
  name TEXT NOT NULL,
  age INTEGER
)`;
store.executeSql(sql);
  1. 插入数据:
const valueBucket = {
  'name': '张三',
  'age': 25
};
store.insert('user', valueBucket);

常见问题解决方案:

  1. 初始化报错检查context是否正确传递
  2. 表创建失败检查SQL语法是否正确
  3. 插入数据确保字段名与表结构一致

建议配合@ohos.data.orm使用注解定义实体类会更方便:

@Entity("user")
class User {
  @PrimaryKey()
  id: number = 0;
  
  @ColumnInfo("name")
  name: string = "";
  
  @ColumnInfo("age")
  age?: number;
}

注意数据库操作需要申请ohos.permission.DATA_STORAGE权限。

回到顶部