更新记录

1.0.1(2024-03-14)

修复查询问题

1.0.0(2024-03-14)


平台兼容性

Vue2 Vue3
×
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
Android:4.4,iOS:不支持,HarmonyNext:不确定 × × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × × × × × ×

rookie-sqlite

使用教程

数据库初始

导入插件 import {init,destroyClear} from '@/uni_modules/rookie-sqlite'

请在 App.uvue 中的 onLaunch 中调用 init 方法初始化数据库,第一个参数是数据库名,第二个参数是数据库表SQL,第三个参数是数据库版本号,升级或者降低版本需要更改当前参数。

数据库初始化只会在数据库不存在时进行初始化。

在 onExit 中调用 destroyClear 清理数据库连接相关。

定义表class

导入 BaseMapper,定义表 class 继承 BaseMapper 就会有相应的增删改查方法。必须实现 getTableName 方法,这个方法定义每个表的表名。

export class Age extends BaseMapper {
    constructor() {
        super()
    }
    override getTableName() : string {
        return "age"
    }
}

CURD 使用

调用相应表的增删改查方法,传入相应的 wrapper,并且 wrapper 可链式调用。条件构造器具体可参考 MyBatis plus

添加数据

import { Age } from '@/model/classify.uts'
import { QueryWrapper,UpdateWrapper } from '@/uni_modules/rookie-sqlite'

let age = new Age()
let temp:UTSJSONObject = {
    id:1
}
age.insert(age)

let arr:Array<UTSJSONObject> = []
age.batchInsert(age)

删除数据

let age = new Age()
let query = new QueryWrapper()
query.eq("id",1);
age.delete(query)

修改数据

let age = new Age()
let update = new UpdateWrapper()
update.set("name","哈哈哈").eq("id",1)
let tmp = age.update(update)

查询数据

let age = new Age()
let query = new QueryWrapper()
query.eq("id",1);
let tmp = age.selectOne(query)
或者
let tmp = age.list(query)

数据库生命周期

如果需要获取数据库的打开和升级的回调,请导入 dataBaseLifecycle,然后重写 upgrade 和 open 方法。注意,升级语句必须写在 init 方法调用的前面。

import {init,destroyClear,dataBaseLifecycle} from '@/uni_modules/rookie-sqlite'
dataBaseLifecycle.upgrade = function(){
    console.log(222)
}

事务使用

请导入 beginTransaction、endTransaction、setTransactionSuccessful,当事务正常结束,setTransactionSuccessful 标记事务成功,然后 endTransaction 结束事务。如果执行中断,直接结束使用,endTransaction 会将数据回滚。

import { QueryWrapper,UpdateWrapper,beginTransaction,endTransaction,setTransactionSuccessful } from '@/uni_modules/rookie-sqlite'
let age = new Age()
beginTransaction()
try{
    age.insert({id:4})
    age.insert({id:"fgdfg"})
    setTransactionSuccessful()
}finally{
    endTransaction()
}

隐私、权限声明

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

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

插件不采集任何数据

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

暂无用户评论。

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