鸿蒙Next ArkTS操作数据库的方法是什么

在鸿蒙Next系统中,使用ArkTS语言操作数据库的具体方法是什么?能否提供一些示例代码或关键API的说明?比如如何创建数据库、增删改查数据等基本操作。

2 回复

鸿蒙Next用ArkTS操作数据库?简单!用@ohos.data.relationalStore包,创建RdbHelper,建表、增删改查,SQL语句直接怼。记得先配数据库版本和表结构,不然小心数据“跑路”哦~(代码量?比追女友简单多了!)

更多关于鸿蒙Next ArkTS操作数据库的方法是什么的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在鸿蒙Next中,使用ArkTS操作数据库主要依赖@ohos.data.relationalStore模块,以下是基本步骤和示例代码:

1. 导入模块

import relationalStore from '@ohos.data.relationalStore';
import { BusinessError } from '@ohos.base';

2. 定义数据库配置

const config: relationalStore.StoreConfig = {
  name: 'MyApplication.db', // 数据库文件名
  securityLevel: relationalStore.SecurityLevel.S1 // 安全级别
};

3. 获取Rdb连接

let rdbStore: relationalStore.RdbStore | undefined = undefined;

relationalStore.getRdbStore(this.context, config, (err, store) => {
  if (err) {
    console.error(`Failed to get RdbStore. Code:${err.code}, message:${err.message}`);
    return;
  }
  rdbStore = store;
  console.info('Succeeded in getting RdbStore.');
});

4. 执行SQL操作

// 创建表
const sqlCreate = `CREATE TABLE IF NOT EXISTS user (
  id INTEGER PRIMARY KEY AUTOINCREMENT,
  name TEXT NOT NULL,
  age INTEGER
)`;
rdbStore?.executeSql(sqlCreate);

// 插入数据
const sqlInsert = 'INSERT INTO user (name, age) VALUES (?, ?)';
rdbStore?.executeSql(sqlInsert, ['张三', 25]);

// 查询数据
const sqlQuery = 'SELECT * FROM user WHERE name = ?';
rdbStore?.query(sqlQuery, ['张三'], (err, resultSet) => {
  if (err) {
    console.error(`Failed to query data. Code:${err.code}, message:${err.message}`);
    return;
  }
  console.info(`ResultSet column names: ${resultSet.columnNames}`);
  console.info(`ResultSet column count: ${resultSet.columnCount}`);
});

关键特性:

  • 事务支持:使用beginTransaction()/commit()/rollback()
  • 数据加密:通过securityLevel配置
  • 结果集操作:通过ResultSet对象遍历查询结果
  • 连接池管理:自动管理数据库连接

注意事项:

  1. 数据库操作需在UI线程外执行
  2. 注意处理异步回调中的错误
  3. 复杂查询建议使用参数化查询防止SQL注入

建议参考官方文档获取完整API说明。

回到顶部