更新记录
1.0.0(2026-03-19)
1.0.0
平台兼容性
uni-app x(4.87)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| × | × | 5.0 | 12 | API 12+ | × |
lux-sqlite
适用于 uni-app x 的跨平台 SQLite UTS 插件,API 设计参考 plus.sqlite,支持 Android、iOS、鸿蒙三端。
⚠️ 开发必读
先试用,后付费:建议您先申请插件试用,确认功能完全符合项目需求。
申请试用:建议先下载提供的示例工程, 点击插件页面的“试用”按钮, 导入到示例工程(无法导入就在manufest.json重新获取uniapp应用ID)。
打包基座:由于官方试用限制,请务必进行 制作自定义调试基座 操作,否则插件无法生效。
平台兼容性
| Android | iOS | HarmonyOS |
|---|---|---|
| API 21+ | 12.0+ | API 12+ |
安装
将 lux-sqlite 目录放入项目的 uni_modules 文件夹中。
导入插件后,可以直接引入组件 <lime-sqlite /> 查看演示效果
<template>
<lux-sqlite />
</template>
<script setup lang="uts">
</script>
<style>
</style>
引入
import {
openDatabase,
isOpenDatabase,
closeDatabase,
executeSql,
selectSql,
transaction,
getDatabasePath
} from '@/uni_modules/lux-sqlite';
import type {
DatabaseOptions,
SqlOptions,
TransactionOptions,
SqliteSuccess,
SqliteFail
} from '@/uni_modules/lux-sqlite';
API
openDatabase(options)
打开数据库,如果不存在则自动创建。
参数 DatabaseOptions:
| 属性 | 类型 | 必填 | 说明 |
|---|---|---|---|
| name | string | 是 | 数据库名称 |
| path | string | 否 | 数据库文件路径,不填则使用应用私有目录 |
| success | (res: SqliteSuccess) => void | 否 | 成功回调 |
| fail | (res: SqliteFail) => void | 否 | 失败回调 |
| complete | (res: any) => void | 否 | 完成回调(成功或失败都会触发) |
示例:
openDatabase({
name: 'mydb',
success: (res: SqliteSuccess) => {
console.log('打开成功', res.errMsg);
},
fail: (res: SqliteFail) => {
console.error('打开失败', res.errCode, res.errMsg);
}
});
isOpenDatabase(options): boolean
判断数据库是否已打开,返回 boolean。
参数 DatabaseOptions:
| 属性 | 类型 | 必填 | 说明 |
|---|---|---|---|
| name | string | 是 | 数据库名称 |
示例:
const isOpen = isOpenDatabase({ name: 'mydb' });
console.log('数据库是否打开:', isOpen);
closeDatabase(options)
关闭已打开的数据库。
参数 DatabaseOptions:
| 属性 | 类型 | 必填 | 说明 |
|---|---|---|---|
| name | string | 是 | 数据库名称 |
| success | (res: SqliteSuccess) => void | 否 | 成功回调 |
| fail | (res: SqliteFail) => void | 否 | 失败回调 |
| complete | (res: any) => void | 否 | 完成回调 |
示例:
closeDatabase({
name: 'mydb',
success: (res: SqliteSuccess) => {
console.log('关闭成功');
}
});
executeSql(options)
执行增删改等不返回结果集的 SQL 语句,支持单条或多条。
参数 SqlOptions:
| 属性 | 类型 | 必填 | 说明 |
|---|---|---|---|
| name | string | 是 | 数据库名称 |
| sql | string | string[] | 是 | SQL 语句,支持单条字符串或多条数组 |
| success | (res: SqliteSuccess) => void | 否 | 成功回调 |
| fail | (res: SqliteFail) => void | 否 | 失败回调 |
| complete | (res: any) => void | 否 | 完成回调 |
示例:
// 建表
executeSql({
name: 'mydb',
sql: 'CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER)',
success: (res: SqliteSuccess) => {
console.log('建表成功');
}
});
// 插入数据
executeSql({
name: 'mydb',
sql: "INSERT INTO users (name, age) VALUES ('张三', 18)",
success: (res: SqliteSuccess) => {
console.log('插入成功');
},
fail: (res: SqliteFail) => {
console.error('插入失败', res.errMsg);
}
});
// 批量执行多条 SQL
executeSql({
name: 'mydb',
sql: [
"INSERT INTO users (name, age) VALUES ('李四', 20)",
"INSERT INTO users (name, age) VALUES ('王五', 25)"
],
success: (res: SqliteSuccess) => {
console.log('批量插入成功');
}
});
selectSql(options)
执行查询 SQL,结果通过成功回调的 data 字段返回。
参数 SqlOptions:
| 属性 | 类型 | 必填 | 说明 |
|---|---|---|---|
| name | string | 是 | 数据库名称 |
| sql | string | string[] | 是 | 查询 SQL 语句 |
| success | (res: SqliteSuccess) => void | 否 | 成功回调,res.data 为查询结果数组 |
| fail | (res: SqliteFail) => void | 否 | 失败回调 |
| complete | (res: any) => void | 否 | 完成回调 |
示例:
selectSql({
name: 'mydb',
sql: 'SELECT * FROM users',
success: (res: SqliteSuccess) => {
const rows = res.data ?? [];
console.log('查询结果,共', rows.length, '条');
for (let i = 0; i < rows.length; i++) {
const row = rows[i] as UTSJSONObject;
console.log('id:', row['id'], 'name:', row['name']);
}
},
fail: (res: SqliteFail) => {
console.error('查询失败', res.errMsg);
}
});
transaction(options)
管理事务,支持开始、提交、回滚三种操作。
参数 TransactionOptions:
| 属性 | 类型 | 必填 | 说明 |
|---|---|---|---|
| name | string | 是 | 数据库名称 |
| operation | 'begin' | 'commit' | 'rollback' | 是 | 事务操作类型 |
| success | (res: SqliteSuccess) => void | 否 | 成功回调 |
| fail | (res: SqliteFail) => void | 否 | 失败回调 |
| complete | (res: any) => void | 否 | 完成回调 |
示例:
// 开始事务
transaction({ name: 'mydb', operation: 'begin' });
// 执行 SQL
executeSql({
name: 'mydb',
sql: "UPDATE users SET age = 19 WHERE name = '张三'",
success: () => {
// 提交事务
transaction({ name: 'mydb', operation: 'commit' });
},
fail: () => {
// 回滚事务
transaction({ name: 'mydb', operation: 'rollback' });
}
});
getDatabasePath(name): string
获取数据库文件的完整路径。
参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| name | string | 是 | 数据库名称 |
返回值: string - 数据库文件的绝对路径
示例:
const dbPath = getDatabasePath('mydb');
console.log('数据库路径:', dbPath);
返回值类型
SqliteSuccess
| 属性 | 类型 | 说明 |
|---|---|---|
| errMsg | string | 成功描述,格式为 方法名:ok |
| data | any[] | 查询结果(仅 selectSql 返回) |
SqliteFail
| 属性 | 类型 | 说明 |
|---|---|---|
| errCode | SqliteErrorCode | 错误码 |
| errMsg | string | 错误描述 |
错误码
| 错误码 | 说明 |
|---|---|
| 9010001 | 数据库打开失败 |
| 9010002 | 数据库未打开 |
| 9010003 | SQL 执行失败 |
| 9010004 | 数据库关闭失败 |
| 9010005 | 事务操作失败 |
| 9010006 | 参数错误 |
完整示例
import {
openDatabase,
isOpenDatabase,
closeDatabase,
executeSql,
selectSql,
transaction
} from '@/uni_modules/lux-sqlite';
import type { SqliteSuccess, SqliteFail } from '@/uni_modules/lux-sqlite';
const DB_NAME = 'myapp';
// 1. 打开数据库
openDatabase({
name: DB_NAME,
success: () => {
// 2. 建表
executeSql({
name: DB_NAME,
sql: `CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
age INTEGER
)`,
success: () => {
// 3. 插入数据(使用事务)
transaction({ name: DB_NAME, operation: 'begin' });
executeSql({
name: DB_NAME,
sql: [
"INSERT INTO users (name, age) VALUES ('张三', 18)",
"INSERT INTO users (name, age) VALUES ('李四', 20)"
],
success: () => {
transaction({ name: DB_NAME, operation: 'commit' });
// 4. 查询数据
selectSql({
name: DB_NAME,
sql: 'SELECT * FROM users',
success: (res: SqliteSuccess) => {
const rows = res.data ?? [];
console.log('查询到', rows.length, '条数据');
}
});
},
fail: () => {
transaction({ name: DB_NAME, operation: 'rollback' });
}
});
}
});
},
fail: (res: SqliteFail) => {
console.error('打开数据库失败:', res.errMsg);
}
});
注意事项
- iOS 平台:依赖 FMDB 库(CocoaPods 自动安装),需制作自定义基座后才能运行
- HarmonyOS 平台:数据库操作为异步,
success/fail回调会在异步完成后触发;事务操作(begin/commit/rollback)为同步 - 数据库路径:默认存储在应用私有沙盒目录,卸载 App 后数据会被清除
- 多数据库:支持同时管理多个数据库,通过
name参数区分
平台实现
| 平台 | 底层实现 |
|---|---|
| Android | android.database.sqlite.SQLiteDatabase |
| iOS | FMDB(CocoaPods) |
| HarmonyOS | @ohos.data.relationalStore |

收藏人数:
购买源码授权版(
试用
使用 HBuilderX 导入示例项目
赞赏(1)
下载 14
赞赏 1
下载 11481405
赞赏 1881
赞赏
京公网安备:11010802035340号