更新记录
1.0.0(2026-07-21)
- 首发版本,统一 Promise API 与
interface.uts公共契约。 - 支持 Android、iOS、Harmony、Web、mp-weixin 五端;App 端原生 SQLite,Web/小程序降级实现。
- 提供连接管理、SQL/事务、建表改表、增删改查、批量新增、混合 CRUD 批处理。
- 支持迁移、备份恢复(App)、JSON 导入导出、PRAGMA、结构检查、健康检查、诊断与能力查询。
- 写操作默认需 where/query 条件;全表更新/删除须显式传
allowAll: true。 - 兼容
table/values/where/orderBy/limit等语义化参数;batch/batchCrud支持同库并发保护。
平台兼容性
uni-app(4.87)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| √ | √ | √ | √ | √ | √ | √ | √ | √ |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| √ | × | × | × | × | × | × | × | × | × | × | × |
uni-app x(5.0)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| √ | √ | √ | √ | √ | √ |
xview-sqlite
xview-sqlite 是面向 uni-app 与 uni-app x 的五端本地数据库 UTS 插件。统一 Promise API,支持建表、增删改查、批量操作、事务、迁移、备份与 JSON 导入导出。
功能特性
- 连接管理:打开、关闭、路径查询、连接状态检查、全局连接清理
- SQL 能力:原始 SQL、查询 SQL、参数化 SQL、批处理、事务
- 结构化 CRUD:单条/批量新增、条件查询、更新、删除、混合 CRUD 批处理
- 表结构:建表、追加字段、字段差异检查、清表、删表、表存在检查
- 增强能力:版本迁移、备份恢复、JSON 导入导出、PRAGMA、结构检查、健康检查
- 诊断能力:平台能力矩阵、调用诊断日志
快速开始
1. 导入插件
将 uni_modules/xview-sqlite 放入项目,页面从插件根目录导入:
import { openDatabase, createTable, insertRow, selectRows } from '@/uni_modules/xview-sqlite'
2. 打开数据库并建表
await openDatabase({ name: 'xview_demo', path: 'xview_demo.db' })
await createTable({
name: 'xview_demo',
tableName: 'notes',
fields: [
{ field: 'id', type: 'INTEGER PRIMARY KEY AUTOINCREMENT', primaryKey: true, autoIncrement: true },
{ field: 'title', type: 'TEXT', notNull: true }
]
})
3. 增删改查
// 新增
await insertRow({
name: 'xview_demo',
tableName: 'notes',
data: { title: 'hello' }
})
// 查询
const res = await selectRows({
name: 'xview_demo',
tableName: 'notes',
query: { title: 'hello' }
})
// 更新(需条件或 allowAll)
await updateRows({
name: 'xview_demo',
tableName: 'notes',
update: { title: 'world' },
query: { title: 'hello' }
})
// 删除(需条件或 allowAll)
await deleteRows({
name: 'xview_demo',
tableName: 'notes',
query: { title: 'world' }
})
所有异步 API 返回
Promise<XviewSqliteResult>,通过success、message、data判断结果。
平台差异说明
App 端(Android / iOS / Harmony)
- 使用真实 SQLite 或官方关系型存储
- 支持
backupDatabase/restoreDatabase文件级备份恢复 - iOS 备份/恢复使用 SQLite3 online backup API
- Harmony 的
path仅取文件名,物理路径由系统管理;getDatabasePath返回存储名称
Web / mp-weixin 降级端
getCapabilities()返回nativeSqlite=false- 不支持文件级
backupDatabase/restoreDatabase,请改用exportDatabase/importDatabase - Web 内部元数据表不出现在
listTables结果中 - mp-weixin 存储 key 以数据库名开头,例如
xview_demo、xview_demo_table_notes
API 一览
返回值
type XviewSqliteResult = {
success: boolean
message: string
data: any | null
}
连接管理
| API | 说明 |
|---|---|
openDatabase({ name, path }) |
打开数据库 |
isOpenDatabase({ name }) |
检查连接是否打开 |
closeDatabase({ name }) |
关闭数据库 |
getDatabasePath({ name }) |
获取数据库路径或存储名 |
cleanupDatabaseConnections() |
清理全部连接 |
SQL
| API | 说明 |
|---|---|
executeSql({ name, sql }) |
执行写操作或 DDL |
selectSql({ name, sql }) |
执行查询 SQL |
executePrepared({ name, sql, params }) |
参数化 SQL(? 占位符) |
batch({ name, sqls, useTransaction }) |
批量执行 SQL |
transaction({ name, action }) |
事务控制:begin / commit / rollback |
结构化 CRUD
| API | 说明 |
|---|---|
selectRows(options) |
条件查询,支持排序、分页 |
insertRow(options) |
单条新增 |
insertRows(options) |
批量新增(推荐) |
updateRows(options) |
条件更新 |
deleteRows(options) |
条件删除 |
batchCrud(options) |
混合 insert/update/delete 事务批处理 |
参数别名:同时支持 tableName / table、data / values、query / where + whereParams、options / orderBy / groupBy / having / limit / offset。
写操作安全:updateRows、deleteRows、batchCrud 中的 update/delete 默认必须带 query 或 where;全表操作须显式传 allowAll: true。
批处理并发:batch、insertRows、batchCrud 对同一数据库名做并发保护,上一轮未完成时返回忙碌结果,避免嵌套事务。
表结构
| API | 说明 |
|---|---|
listTables({ name }) |
列出所有业务表 |
isTableExists({ name, tableName }) |
检查表是否存在 |
createTable({ name, tableName, fields }) |
建表 |
addTableColumns({ name, tableName, fields }) |
追加字段 |
checkTableFields({ name, tableName, fields }) |
字段差异检查 |
clearTable({ name, tableName }) |
清空表数据 |
deleteTable({ name, tableName }) |
删除表 |
增强与诊断
| API | 说明 |
|---|---|
runMigrations({ name, migrations }) |
执行版本迁移 |
backupDatabase({ name, path }) |
文件备份(App) |
restoreDatabase({ name, path }) |
文件恢复(App) |
exportDatabase({ name, data, overwrite }) |
JSON 导出 |
importDatabase({ name, data, overwrite }) |
JSON 导入 |
configureDatabase(options) |
PRAGMA 配置 |
inspectDatabase(options) |
结构检查 |
runHealthCheck(options) |
健康检查 |
getCapabilities() |
平台能力矩阵 |
getDiagnostics({ includeLogs }) |
诊断快照 |
clearDiagnostics() |
清空诊断日志 |
完整类型定义见 utssdk/interface.uts。
完整示例
import {
openDatabase,
isOpenDatabase,
createTable,
isTableExists,
executePrepared,
insertRows,
selectRows,
runMigrations,
getCapabilities
} from '@/uni_modules/xview-sqlite'
await openDatabase({ name: 'xview_demo', path: 'xview_demo.db' })
await createTable({
name: 'xview_demo',
tableName: 'notes',
fields: [
{ field: 'id', type: 'INTEGER PRIMARY KEY AUTOINCREMENT', primaryKey: true, autoIncrement: true },
{ field: 'title', type: 'TEXT', notNull: true }
]
})
await isOpenDatabase({ name: 'xview_demo' })
await isTableExists({ name: 'xview_demo', tableName: 'notes' })
await executePrepared({
name: 'xview_demo',
sql: 'INSERT INTO notes (title) VALUES (?)',
params: ['hello']
})
await insertRows({
name: 'xview_demo',
tableName: 'notes',
rows: [{ title: 'batch A' }, { title: 'batch B' }],
useTransaction: true
})
const rows = await selectRows({
name: 'xview_demo',
table: 'notes',
where: 'title LIKE ?',
whereParams: ['batch%'],
orderBy: 'id DESC',
limit: 20
})
const capabilities = getCapabilities()
权限与隐私
- 默认不申请外部存储权限
- 数据保存在应用沙箱、IndexedDB 或微信小程序本地存储中
- 无广告、无第三方数据上报

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