更新记录

1.2(2023-07-28)

支持设置自定义数据库路径

1.1(2022-09-20)

1、优化多个数据库切换 2、支持查询某个数据库是否存在 3、支持查询某个表是否存在

1.0(2022-09-13)

init

查看更多

平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 14.0 armeabi-v7a:支持,arm64-v8a:支持,x86:支持 ×

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


原生sqlite本地数据库管理 Ba-Sqlite

简介

Ba-Sqlite 是一款原生sqlite数据库管理插件。支持创建表、删除表;增、删、改、查;事务控制;分页查询;批量删、改、查等等。

  • 支持多个数据库切换
  • 支持创建表、删除表
  • 支持增、删、改、查
  • 支持事务
  • 支持批量修改
  • 支持分页查询
  • 支持条件排序
  • 支持自定义条件,批量删、改、查
  • 支持查询当前表结构
  • 支持执行自定义sql
  • 支持返回数据总数(列表)
  • 支持自定义数据库路径

有建议和需要,请联系QQ:2579546054

效果展示

点这里

使用方法

引入组件

script 中引入组件

    const sqlite = uni.requireNativePlugin('Ba-Sqlite')

调用示例

script 中调用

        data() {
            return {
                dbName: 'ba-db.db',
                tableName: 'user',
                columnNames: "[{name: '_id',type: 'int',isId: true,desc:'主键id'}, {name: 'name',type: 'text',desc:'姓名',notNull:true}, {name: 'sex',type: 'int',desc:'性别1:男 2:女 0:未知'}, {name: 'hobby',type: 'text',desc:'爱好'}]",
                values: "[{_id: 1,name: '张三',sex: '1'}, {_id: 2,name: '李四',sex: '2'}]",
                deleteIdKey: '_id',
                deleteId: '1',
                updateQueryKey: 'sex = ?',
                updateQueryValue: "['2']",
                updateContent: "{hobby: '逛街'}",
                pageNum: 1,
                pageSize: 10,
                orderKey: "sex",
                orderType: "desc",
                dataResult: ""
            }
        },
        methods: {
            openOrCreate() { //打开或创建数据库(也可以用来切换多个数据库)
                sqlite.openOrCreate({
                        'dbName': this.dbName,
                        //'dbPath': '/storage/emulated/0',//自定义数据库路径
                    },
                    (res) => {
                        console.log(res);
                        uni.showToast({
                            title: res.msg,
                            icon: "none",
                            duration: 3000
                        })
                    });
            },
            isHasDb() { //查询某个数据库是否存在
                sqlite.isHasDb({
                        'dbName': this.dbName,
                    },
                    (res) => {
                        console.log(res);
                        let msg = res.msg;
                        if (res.ok) {
                            msg = res.isHasDb ? "存在" : "不存在";
                        }
                        uni.showToast({
                            title: msg,
                            icon: "none",
                            duration: 3000
                        })
                    });
            },
            createTable() { //创建表
                sqlite.createTable({
                        'tableName': this.tableName,
                        'columnNames': this.columnNames,
                    },
                    (res) => {
                        console.log(res);
                        uni.showToast({
                            title: res.msg,
                            icon: "none",
                            duration: 3000
                        })
                    });
            },
            deleteTable() { //删除表
                sqlite.deleteTable({
                        'tableName': this.tableName,
                    },
                    (res) => {
                        console.log(res);
                        uni.showToast({
                            title: res.msg,
                            icon: "none",
                            duration: 3000
                        })
                    });
            },
            isHasTable() { //查询某个表是否存在
                sqlite.isHasTable({
                        'tableName': this.tableName,
                    },
                    (res) => {
                        console.log(res);
                        let msg = res.msg;
                        if (res.ok) {
                            msg = res.isHasTable ? "存在" : "不存在";
                        }
                        uni.showToast({
                            title: msg,
                            icon: "none",
                            duration: 3000
                        })
                    });
            },
            getTables() { //获取数据库所有表
                sqlite.getTables({},
                    (res) => {
                        console.log(res);

                        this.dataResult = res.ok ? JSON.stringify(res) : '';

                        uni.showToast({
                            title: res.msg,
                            icon: "none",
                            duration: 3000
                        })
                    });
            },
            insert() { //插入数据
                sqlite.insert({
                        'tableName': this.tableName,
                        'values': this.values,
                    },
                    (res) => {
                        console.log(res);
                        uni.showToast({
                            title: res.msg,
                            icon: "none",
                            duration: 3000
                        })
                    });
            },
            replace() { //更新数据
                sqlite.replace({
                        'tableName': this.tableName,
                        'values': this.values,
                    },
                    (res) => {
                        console.log(res);
                        uni.showToast({
                            title: res.msg,
                            icon: "none",
                            duration: 3000
                        })
                    });
            },
            update() { //批量修改数据
                sqlite.update({
                        'tableName': this.tableName,
                        'tableName': this.tableName,
                        'selection': this.updateQueryKey,
                        'selectionArgs': this.updateQueryValue,
                        'values': this.updateContent,
                    },
                    (res) => {
                        console.log(res);
                        uni.showToast({
                            title: res.msg,
                            icon: "none",
                            duration: 3000
                        })
                    });
            },
            deleteData() { //删除数据
                sqlite.delete({
                        'tableName': this.tableName,
                        'idKey': this.deleteIdKey,
                        'idValue': this.deleteId,
                    },
                    (res) => {
                        console.log(res);
                        uni.showToast({
                            title: res.msg,
                            icon: "none",
                            duration: 3000
                        })
                    });
            },
            clearData() { //清空数据
                sqlite.clear({
                        'tableName': this.tableName,
                    },
                    (res) => {
                        console.log(res);
                        uni.showToast({
                            title: res.msg,
                            icon: "none",
                            duration: 3000
                        })
                    });
            },
            query() { //查询数据
                let orderBy;
                if (this.orderKey && this.orderType) {
                    orderBy = this.orderKey + " " + this.orderType;
                }
                sqlite.query({
                        'tableName': this.tableName,
                        'orderBy': orderBy,
                    },
                    (res) => {
                        console.log(res);
                        this.dataResult = res.ok ? JSON.stringify(res) : '';

                        uni.showToast({
                            title: res.msg,
                            icon: "none",
                            duration: 3000
                        })
                    });
            },
            queryPage() { //分页查询
                let orderBy;
                if (this.orderKey && this.orderType) {
                    orderBy = this.orderKey + " " + this.orderType;
                }
                sqlite.queryPage({
                        'tableName': this.tableName,
                        'pageNum': this.pageNum,
                        'pageSize': this.pageSize,
                        'orderBy': orderBy,
                    },
                    (res) => {
                        console.log(res);

                        this.dataResult = res.ok ? JSON.stringify(res) : '';

                        uni.showToast({
                            title: res.msg,
                            icon: "none",
                            duration: 3000
                        })
                    });
            },
            closeDb() { //关闭数据库
                sqlite.closeDb({},
                    (res) => {
                        console.log(res);
                        uni.showToast({
                            title: res.msg,
                            icon: "none",
                            duration: 3000
                        })
                    });
            },
        }

方法清单

名称 说明
openOrCreate 打开或创建数据库(也可以用来切换多个数据库)
isHasDb 查询某个数据库是否存在
createTable 创建表
deleteTable 删除表
isHasTable 查询某个表是否存在
getTables 获取数据库所有表
insert 插入数据
replace 更新数据
update 批量修改数据
delete 删除数据
clear 清空数据
query 查询数据
queryPage 分页查询
execSQL 执行sql语句(无返回)
rawQuery 自定义sql语句查询

openOrCreate 方法参数

打开或创建数据库(也可以用来切换多个数据库)

属性名 类型 默认值 说明
dbName String 'ba-db.db' 数据库名称
dbPath String 默认 自定义数据库路径,不传为默认路径(传值为应用可访问的手机本地路径)

isHasDb 方法参数

查询某个数据库是否存在

属性名 类型 默认值 说明
dbName String 'ba-db.db' 数据库名称
返回:
{"isHasDb":false,"msg":"success","ok":true}

createTable 方法参数

创建表

属性名 类型 默认值 说明
tableName String '' 表名
columnNames Array [] 表结构(参考如下)
表结构 columnNames
属性名 类型 默认值 说明
name String '' 字段名称
type String '' 字段类型(text、int)
isId Boolean false 是否是主键(默认主键'_id')
isAuto Boolean false 是否自增(仅主键)
notNull Boolean false 是否不能为空

deleteTable 方法参数

删除表

属性名 类型 默认值 说明
tableName String '' 表名

isHasTable 方法参数

查询某个表是否存在

属性名 类型 默认值 说明
tableName String '' 表名
返回:
{"isHasTable":false,"msg":"success","ok":true}

insert 方法参数

插入数据

属性名 类型 默认值 说明
tableName String '' 表名
values Array '' 需要插入的数据(json),如 [{_id: 1,name: '张三',sex: '1'}]

replace 方法参数

更新数据

属性名 类型 默认值 说明
tableName String '' 表名
values Array '' 需要更新的数据(json),如 [{_id: 1,name: '张三',sex: '1'}]

update 方法参数

根据条件批量修改数据

属性名 类型 默认值 说明
tableName String '' 表名
selection String '' 查询的字段,如 'sex = ?'
selectionArgs String[] [] 查询的字段的值,如 ['1']
values Object {} 批量更改的数据,如 {hobby: '逛街'}

delete 方法参数

可根据id删除,也可自定义selection条件删除

属性名 类型 默认值 说明
tableName String '' 表名
idKey String '_id' id字段,默认 '_id'
idValue String id的值,如 1
selection String '' 查询的字段,如 'sex = ?'(注意selection有值时,idKey和idValue无效,)
selectionArgs String[] [] 查询的字段的值,如 ['1']

clear 方法参数

清空表

属性名 类型 默认值 说明
dbName String 'ba-db.db' 数据库名称
tableName String '' 表名

query 方法参数

查询数据

属性名 类型 默认值 说明
dbName String 'ba-db.db' 数据库名称
tableName String '' 表名
selection String '' 查询的字段,如 'sex = ?'
selectionArgs String[] [] 查询的字段的值,如 ['1']
groupBy String '' 对相同的数据进行分组
having String ''
orderBy String '' 一个或多个列按升序或降序顺序排列数据
limit String '' 限制返回的数据数量

rawQuery 方法参数

自定义sql语句查询

属性名 类型 默认值 说明
sql String '' sql语句,如:select * from user

execSQL 方法参数

执行sql语句(无返回)

属性名 类型 默认值 说明
sql String '' sql语句,如:UPDATE user SET hobby='美食'

系列插件

图片选择插件 Ba-MediaPicker文档

图片编辑插件 Ba-ImageEditor文档

文件选择插件 Ba-FilePicker文档

应用消息通知插件 Ba-Notify文档

应用未读角标插件 Ba-Shortcut-Badge文档

应用开机自启插件 Ba-Autoboot文档

扫码原生插件(毫秒级、支持多码)文档

动态修改状态栏、导航栏背景色、字体颜色插件 Ba-AppBar文档

原生sqlite本地数据库管理 Ba-Sqlite文档

安卓保活插件 Ba-KeepAlive文档

安卓快捷方式(桌面长按app图标) Ba-Shortcut文档

隐私、权限声明

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

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

插件不采集任何数据

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

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