Skip to content

LimeSqlite SQLite数据库组件

一个参考 plus.sqlite API 实现的 SQLite UTS API 组件,兼容 UniAppX(安卓、iOS、鸿蒙Next)平台。提供了数据库的打开、关闭、查询、执行SQL语句等功能,可用于本地数据存储、缓存、配置管理等多种应用场景。组件提供了简单易用的接口,使开发者能够方便地在应用中使用SQLite数据库。

文档链接

📚 组件详细文档请访问以下站点:

安装方法

  1. 在uni-app插件市场入口 中搜索并导入lime-sqlite
  2. 导入后在页面引入相关方法
  3. iOS平台如果是Windows开发环境需要自定义基座

代码演示

打开数据库

创建或打开一个SQLite数据库:

js
import { openDatabase, type DatabaseOptions } from '@/uni_modules/lime-sqlite'

openDatabase({
  // 支持路径,例如 '/static/db/test.db'
  // 鸿蒙不支持路径
  // web支持路径,是通过下载的方式,但数据并不存在路径文件里
  name: 'text',
  success(res) {
    console.log('openDatabase', res)
  },
  fail(err) {
    console.log('openDatabase', err)
  }
} as DatabaseOptions)

判断数据库是否打开

检查指定的数据库是否已经打开:

js
import { isOpenDatabase, type DatabaseOptions } from '@/uni_modules/lime-sqlite'

isOpenDatabase({
  name: 'text',
  success(res) {
    console.log('isOpenDatabase', res)
  },
  fail(err) {
    console.log('isOpenDatabase', err)
  }
} as DatabaseOptions)

关闭数据库

关闭已打开的数据库:

js
import { closeDatabase, type DatabaseOptions } from '@/uni_modules/lime-sqlite'

closeDatabase({
  name: 'text',
  success(res) {
    console.log('closeDatabase', res)
  },
  fail(err) {
    console.log('closeDatabase', err)
  }
} as DatabaseOptions)

执行事务

开始、提交或回滚数据库事务:

js
import { transaction,type SqlTransactionOptions } from '@/uni_modules/lime-sqlite'

transaction({
  name: 'text',
  operation: 'begin', // 'begin'、'commit'或'rollback'
  success(res) {
    console.log('transaction', res)
  },
  fail(err) {
    console.log('transaction', err)
  }
} as SqlTransactionOptions)

执行增删改等操作的SQL语句

执行不返回结果集的SQL语句,如CREATE、INSERT、UPDATE、DELETE等:

js
import { executeSql, type SqlOperationOptions } from '@/uni_modules/lime-sqlite'

executeSql({
  name: 'text',
  sql: [
    "CREATE TABLE IF NOT EXISTS test (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, age INTEGER)",
    "INSERT INTO test (name, age) VALUES ('Alice', 30)",
    "INSERT INTO test (name, age) VALUES ('Bob', 25)",
    "INSERT INTO test (name, age) VALUES ('Charlie', 35)"
  ],
  success(res) {
    console.log('executeSql', res)
  },
  fail(err) {
    console.log('executeSql', err)
  }
} as SqlOperationOptions)

执行查询的SQL语句

执行返回结果集的SQL语句,如SELECT:

js
import { selectSql,type SqlOperationOptions } from '@/uni_modules/lime-sqlite'

selectSql({
  name: 'text',
  sql: ['select * from test'],
  success(res) {
    console.log('selectSql', res)
  },
  fail(err) {
    console.log('selectSql', err)
  }
} as SqlOperationOptions)

获取数据库路径

获取数据库文件在本地存储中的路径:

js
import { getDatabasePath } from '@/uni_modules/lime-sqlite'

const url = getDatabasePath('text');
// web 返回的是blob

快速预览

导入插件后,可以直接使用以下标签查看演示效果:

html
<!-- 代码位于 uni_modules/lime-sqlite/components/lime-sqlite -->
<lime-sqlite />

插件标签说明

标签名说明
l-sqlite组件标签
lime-sqlite演示标签

详细配置请参考官方文档:Vue Composition API

API文档

数据库操作函数

函数名说明参数
openDatabase打开数据库options: DatabaseOptions
isOpenDatabase判断数据库是否打开options: DatabaseOptions
closeDatabase关闭数据库options: DatabaseOptions
transaction执行事务options: SqlTransactionOptions
executeSql执行增删改等操作的SQL语句options: SqlOperationOptions
selectSql执行查询的SQL语句options: SqlOperationOptions
getDatabasePath获取数据库路径name: string

DatabaseOptions 选项

参数说明类型必填
name数据库名称string
path数据库路径string
success成功回调函数(res: any) => void
fail失败回调函数(err: any) => void

SqlTransactionOptions 选项

参数说明类型必填
name数据库名称string
operation事务操作类型'begin' | 'commit' | 'rollback'
success成功回调函数(res: any) => void
fail失败回调函数(err: any) => void

SqlOperationOptions 选项

参数说明类型必填
name数据库名称string
sqlSQL语句数组string[]
success成功回调函数(res: any) => void
fail失败回调函数(err: any) => void

功能特点

  • 兼容UniAppX(安卓、iOS、鸿蒙Next)平台
  • 参考plus.sqlite API实现,使用方式类似
  • 支持数据库的基本操作:打开、关闭、查询、执行SQL语句等
  • 支持事务处理
  • 支持批量执行SQL语句
  • 提供简单易用的接口,降低使用SQLite的门槛

常见问题

  • iOS平台在Windows开发环境下需要自定义基座
  • 鸿蒙平台不支持通过路径方式打开数据库
  • Web平台支持路径方式,但数据并不实际存储在文件中
  • 使用完数据库后应及时关闭,避免资源泄漏
  • 大量数据操作建议使用事务提高性能
  • 可以参考plus.sqlite文档了解更多用法

支持与赞赏

如果你觉得本插件解决了你的问题,可以考虑支持作者:

支付宝赞助微信赞助

源代码

组件源码