更新记录

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));

隐私、权限声明

1. 本插件需要申请的系统权限列表:

app端,sqlite

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问