)
SQLite 通用操作工具 (SL-SqlLite.js)插件市场操作视频基于 uni-appplus.sqlite的 Promise 化 SQLite 操作工具仅支持App5环境。非 App 环境H5 / 小程序调用任何方法会自动 reject 并弹窗提示。快速开始importdbfrom/SL-SqlLite/SL-SqlLite.js// 1. 打开数据库awaitdb.openDatabase(mydb.db,_doc/)db.setCurrentDBName(mydb.db)// 2. 建表awaitdb.createTable(user,id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER)// 3. 新增awaitdb.insert(user,{name:张三,age:25})// 4. 查询constlistawaitdb.selectAll(user,*,null,id DESC)constoneawaitdb.selectOne(user,id 1)constcntawaitdb.count(user,age 20)// 5. 修改awaitdb.update(user,{name:李四,age:30},id 1)// 6. 删除awaitdb.remove(user,id 1)// 7. 事务awaitdb.transaction(async(){awaitdb.insert(user,{name:王五,age:28})awaitdb.insert(user,{name:赵六,age:32})})// 8. 关闭awaitdb.closeDatabase(mydb.db)环境检测if(!db.isApp()){constplatformdb.getPlatformName()// H5 | 微信小程序 | ...uni.showModal({title:提示,content:当前为${platform}无法使用 SQLite})return}isApp()返回true时为 App 环境false为其他平台非环境下调用任何数据库方法会自动弹窗提示并 reject不会崩溃API 一览数据库管理方法参数返回值说明openDatabase(name, path)name: 库名如mydb.dbpath: 存放路径默认_doc/Promise打开/创建数据库closeDatabase(name)name: 库名Promise关闭数据库isOpenDatabase(name)name: 库名PromiseBoolean判断是否已打开setCurrentDBName(name)name: 库名-设置当前操作的数据库名getCurrentDBName()-String获取当前数据库名未设置时抛错原始 SQL方法参数返回值说明executeSql(sql)完整 SQL 字符串Promise执行 INSERT/UPDATE/DELETE/CREATE 等selectSql(sql)完整 SELECT 语句PromiseArray查询返回行数组注意plus.sqlite不支持?参数绑定所有 SQL 需手动拼接完整值。便捷 CRUD 方法已内部处理。便捷 CRUD方法参数返回值说明insert(table, data)table: 表名data:{ col: val }Promise插入单条值自动转义insertBatch(table, dataList)dataList:[{ col: val }, ...]Promise批量插入事务包裹update(table, data, where)data: 更新字段where: 如id 5Promise更新记录remove(table, where)where: 如id 1Promise删除记录selectAll(table, columns, where, orderBy, limit)均可选PromiseArray查询多条selectOne(table, where)where: 条件PromiseObject|null查询单条count(table, where)where: 可选PromiseNumber查询记录数表结构方法参数返回值说明createTable(table, definition)definition: 如id INTEGER PRIMARY KEY, name TEXTPromise建表IF NOT EXISTSdropTable(table)表名Promise删表DROP IF EXISTS事务方法参数返回值说明transaction(fn)fn: async 函数返回 PromisePromise自动 BEGIN/COMMIT/ROLLBACKawaitdb.transaction(async(){awaitdb.insert(account,{name:A,balance:100})awaitdb.insert(account,{name:B,balance:200})// 若中途出错自动 ROLLBACK两条都不会写入})值转义说明plus.sqlite.executeSql不支持?占位符绑定工具内部通过toSqlValue()手动拼接JS 类型SQL 输出示例number原值25boolean1/01string单引号包裹内部转义为张三null/undefinedNULLNULL查询结果注意事项plus.sqlite.selectSql返回的是native 代理对象Vue 模板无法直接读取属性。查询后需浅拷贝为纯 JS 对象constrowsawaitdb.selectAll(user)// 推荐浅拷贝后赋值给 Vue datathis.listrows.map(r({id:r.id,name:r.name,age:r.age}))常见问题-1402 Same Name Already Open数据库已打开时重复调用openDatabase会报此错误。解决先检查再打开。constisOpenawaitdb.isOpenDatabase(mydb.db)if(!isOpen){awaitdb.openDatabase(mydb.db)}中文乱码SQLite 原生支持 UTF-8 中文存储无需特殊处理。若出现乱码通常是 HTML/JS 文件编码问题确保.vue/.js文件以 UTF-8 无 BOM 保存。非环境调用非 App 环境下调用任何方法会自动弹窗提示并 reject不会崩溃SQLite 仅支持 App 环境运行当前为 H5无法使用数据库功能完整 API 导出分类方法环境isApp,getPlatformName数据库openDatabase,closeDatabase,isOpenDatabase,setCurrentDBName,getCurrentDBNameSQLexecuteSql,selectSqlCRUDinsert,insertBatch,update,remove,selectAll,selectOne,count表结构createTable,dropTable事务transaction