更新记录
1.0.0(2025-06-05) 下载此版本
添加indexdb支持
平台兼容性
uni-app(4.01)
Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
---|---|---|---|---|---|---|---|---|
√ | - | √ | √ | √ | - | - | - | - |
微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 快应用-华为 | 快应用-联盟 |
---|---|---|---|---|---|---|---|---|---|---|
× | × | × | × | × | × | - | × | × | × | × |
uni-app x(4.01)
Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
---|---|---|---|---|---|
- | - | - | - | - | - |
其他
多语言 | 暗黑模式 | 宽屏模式 |
---|---|---|
× | × | √ |
rookie-sqlite-plugin
初始化
在 web 环境和 app 环境请使用不同的方式初始化数据库对象
web
1、请使用 new IndexedDB(dbName, version) 创建数据库对象 dbName数据库名称 version数据库版本,如果高于上一个版本会触发升级
2、然后调用 initialize 方法初始化表对象 initialize(storeConfigs, onUpgradeCallback) 首次会创建所有的表空间。 storeConfigs:表配置,设置主键的自增方式和表名 示例数据:
const storeConfigs = [
{
storeName: 'users',
options: {keyPath: 'id', autoIncrement: true},
indexes: [
{
indexName: "age", keyPath: "age", indexOptions: {unique: false}
},
{
indexName: "name", keyPath: "name", indexOptions: {unique: false}
}
]
}
]
onUpgradeCallback:升级方法,触发升级的时候去修改各种配置索引之类的
3、打开数据库
第一步创建了对象dbHandle,然后使用dbHandle.open()去打开数据库。
数据查询
const wrap = new IndexDBQueryWrapper(dbHandle.db, "users")
查询列表数据
wrap.eq('age', 100).list().then(user => console.log('用户:', user));
支持eq(等于)、gt(大于)、lt(小于)、in(在列表)、gte(大于等于)、lte(小于等于) 支持多个方法拼接
or的使用
wrap.or([
{eq: ['age', 200]},
{eq: ['age', 100]},
]).list().then(user => console.log('用户:', user));
查询单条数据
const wrap = new IndexDBQueryWrapper(dbHandle.db, "users")
wrap.getById("age",200).then(user => console.log('用户:', user));
支持 getById(id) 通过主键ID查询,getByIndex(indexName, key) 通过索引名称查询,如果索引名称存在多条数据也只会返回单条数据
数据添加
通过调用 dbHandle.add(storeName, data)去添加数据。
实例:
dbHandle.add("users",{
age: 200,
name: "哈3哈哈"
}).then((res) => {
console.log(res);
}).catch((err) => {
console.log(err);
})
如果添加成功会返回id
更新数据
const wrap = new IndexDBQueryWrapper(this.$store.state.dbHandle.db, "users")
wrap.eq("age",100).update({"age":1000}).then(data => console.log('数据:', data));
删除数据
const wrap = new IndexDBQueryWrapper(this.$store.state.dbHandle.db, "users")
wrap.eq("age", 200).remove().then(data => console.log('数据:', data));