更新记录

1.0.2(2021-11-23)

1.修复数据库索引不统一问题,修复oderby等只能放在where前问题,修复整数不被判定问题

1.0.1(2021-11-13)

1.初次上传


平台兼容性

Vue2 Vue3
×
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
app-vue app-nvue × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari

插件基于jyf-localDB 上的拓展增强

支持了多数据库,并且在APP端自动切换为sqllite数据库

本插件对本地 storage 进行封装和集中管理,可以实现一个简易的本地数据库

本插件已经应用于即时通讯项目 yyxImFrame 用以本地消息缓存 其他用法可以下载上述插件查看baseServiceImpl.js 文件或 msgServiceImpl.js 文件

示例:

const localDB = require('@/js_sdk/yyx-localDB/yyx-localDB.js')
const _cmd = localDB.command

//打开数据库 获得数据库索引,在合适的时候启用
let baseInfoIndex = await localDB.open('应用账号', '数据库名') //  创建后APP端 数据库名 'localDB_' + 应用账号 + '_' + 数据库名

//检索不到数据库索引代表有问题
if (!baseInfoIndex) {
        uni.showToast({
            icon: "none",
            title: '数据库出现建设性错误,请反馈该问题:10001'
        })
        // #ifdef APP-PLUS  
        setTimeout(() => {
            //退出应用
            plus.runtime.quit();
        }, 1600)
        // #endif
    return;
}

//创建本地表
let _testDB = await localDB.collection(baseInfoIndex, '_testDB') // 表名 
if (!_testDB) {
    //如果无法获取 则需要创建表,如果在APP端需要 则加入建表结构 
    //sqllite建表 field 字段名  format 代表类型 及其他 
        _testDB = await localDB.createCollection(baseInfoIndex, '_testDB',
            [{
                    field: 'targetAccount',
                    format: 'TEXT NOT NULL'
            },
            {
                    field: 'showAvatar',
                    format: 'TEXT'
            },
            {
                    field: 'showTitle',
                    format: 'TEXT'
            },
            {
                    field: 'time',
                    format: 'INTEGER DEFAULT 0'
            },
        ])

} 

//增加
let id = await _testDB.add({
    targetAccount:'admin110',
    showAvatar:'sssssssss',
    showTitle:'aaa1d1d1d1d'
})
//删除
await _testDB.doc(id).remove();
//修改
await _testDB.where({
    targetAccount:'admin110',
    showAvatar:'sssssssss',
}).update({
    targetAccount:'updateAdmin',
});
//查询
await _testDB.where({
    targetAccount:'admin110',
    showAvatar:'sssssssss',
}).get();
//返回一个数组[]
await _testDB.where({
    targetAccount:'admin110',
    showAvatar:'sssssssss',
}).get({
    getOne:true
});
//返回单一查询内容 不尊重返回null
//分页查询
await _testDB.get({
    page: {
    current: 当前页,
    size: 数量
    }
})
//返回一个数组[]

//where的使用

.where({
    targetAccount:'admin110',
    showAvatar:'sssssssss',
})

.where({
    targetAccount:_cmd.eq('admin110'),
    time:_cmd.gte(555555),
})
//targetAccount:  _cmd.eq('123456').and( _cmd.neq('987654')).and( _cmd.neq('6542222')),
//_testDB.orderBy('isTop', 'desc').orderBy('noReadNum', 'desc').orderBy('updateTimeStamp', 'desc').get();

//关闭数据库
await localDB.close();

隐私、权限声明

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

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

插件不采集任何数据

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

许可协议

MIT协议

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