更新记录
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();