更新记录

1.0.2(2023-06-08)

1、修复iOS 更新数据报错问题 2、修复ios 查询数据问题

1.0.1(2023-06-05)

1、支持count查询 2、支持 where中使用 ?配合args 3、支持表删除

0.0.3(2021-12-09)

查看更多

平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 11.0 armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 适用版本区间:11 - 15

原生插件通用使用流程:

  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原生插件配置”->”云端插件“列表中删除该插件重新选择


数据库原生插件说明文档

1、功能介绍

1、该插件封装了sqlite的数据库,可对数据进行增、删、改、查,并支持多数据插入,更新,删除等; 2、无需写sql,可以直接插入json对象; 3、可自定义设置查询条件,修改条件,删除条件; 4、支持sql大部分语法;

5、支持删除表

6、支持查询数据量

7、支持变量

引用的第三方库

iOS :fmdb

androd: sqlbrite

2、api接口介绍(该插件为原生插件,需自定义基座才可以使用)

引入插件

const sqliteTool=uni.requireNativePlugin("Cl-Sqlite");

sqliteTool.initDB("test.db"); //设置数据库名称;

创建数据库表,该操作需写sql,

*api介绍**

提示:

<!--**where中如果有变量需要查人,建议使用?和args配合使用;-->

1、创建表

        //不支持BLOB
        //支持 
        NULL. 值是空值;
        INTEGER. 值是有符号整数,根据值的大小以1,2,3,4,6 或8字节存储。即整型int;
        REAL. 值是浮点数,以8字节 IEEE 浮点数存储。即float 或 double; 
    TEXT. 值是文本字符串,使用数据库编码(UTF-8, UTF-16BE 或 UTF-16LE)进行存储。 即字符串String

                sqliteTool.onExecute(
                {
                  sql:"CREATE TABLE Test (id INTEGER PRIMARY KEY, name TEXT, age INTEGER,  weight REAL)"
                },result=>{    
                       //结果;

             uni.showModal({
              content:JSON.stringify(result)
            })      
               }       
            );
2、判断表是否存在
      //设置数据库名称;
            sqliteTool.initDB("test.db");
            //判断 数据库中的 表是否存在;
            sqliteTool.isTableExist("Test",result=>{
                //1存在,0存在;          
        if(result.code==0)
        {
          this.creatData();
        }
        })
3、单条数据插入
sqliteTool.insertData({
                    tableName:"Test",
                    data:{"name":"张三","age":30,"weight":65.12}
                },result=>{

                    uni.showModal({
                        content:JSON.stringify(result)
                    })

                });
4、多条数据插入
//tableName, 表名 必传

// datas 插入的数据 必传
            let ar=[];
                for(let i=0;i<100;i++)
                {
                    ar.push({"name":"小明","age":24,"weight":65.12});

                }
                sqliteTool.insertDatas(
                    {
                      tableName:"Test",
                      datas:ar,
                    },result=>{

                        uni.showModal({
                            content:JSON.stringify(result)
                        })      
                });

5、更新数据

//tableName, 表名 必传

 data 插入的数据 必传
 where 条件 必传,条件没有限制,只要符合sql语法,如果where 中包含? 需传args

    sqliteTool.updateData({
                    tableName:"Test",//必填
                    data:{"name":"gray","age":28,"weight":65.12},//必填
                    where:"id>?",//必填
                    args:[3]
                },result=>{

                    uni.showModal({
                        content:JSON.stringify(result)
                    })

                });

6、执行多条数据的更新,内部执行事务处理

//tableName, 表名 必传
//datas 更新的数据(数组);必传
//data 更新的数据; 必传
//where 条件 必传, 条件没有限制,只要符合sql语法,如果where 中包含? 需传args

sqliteTool.updateDatas({
                    tableName:"Test",
                    datas:[
                            {
                                data:{"name":"han123","age":100},
                                where:"age = ?", 
                                args:[3]
                            },
                            {
                                data:{"name":"ha11123","age":111},
                                where:"age = ?"
                                args:[10]
                            }
                    ]

                },result=>{
                    //结果;code:0失败,1成功,2参数为空
                    uni.showModal({
                        content:JSON.stringify(result)
                    })

                });             

7、删除数据

    //tableName, 表名 必传
  //where 条件 必传,条件可以根据sql语法自定义,如果where 中包含? 需传args
/**
  方式一
   * */ 
sqliteTool.removeData({
                  tableName:"Test",
                  where:"name='ha'",       where 条件没有限制,只要符合sql语法
            },
            result=>{
            //结果;code:0失败,1成功,2参数为空
                uni.showModal({
                    content:JSON.stringify(result)
                })

            })
/**
  方式二
   * */             
     sqliteTool.removeData({
                  tableName:"Test",
                  where:"name=?",      where 条件没有限制,只要符合sql语法
                  args:["han"]
            },
            result=>{
            //结果;code:0失败,1成功,2参数为空
                uni.showModal({
                    content:JSON.stringify(result)
                })

            })      

8、删除多条数据

    //tableName, 表名 必传
  //wheres 条件 必传

sqliteTool.removeDatas({
                    tableName:"Test",//必填
                    datas:[
                            {
                                where:"age = ?",
                                args:[100]
                            },
                            {
                                where:"age = ?",
                                args:[12]
                            },
                            {
                                where:"age = ?",
                                args:[16]
                            },
                            {
                                where:"age = ?",
                                args:[11]
                            },
                            {
                                where:"id = ?",
                                args:[14]
                            },  

                    ]

                },
                result=>{
                    uni.showModal({
                        content:JSON.stringify(result)
                    })

                })  

9、查询数据

        //tableName, 表名 必传
        //where 条件 可选; 如果数据比较多,进行分页查询,具体用法参考sql语法
        sqliteTool.query({
                    tableName:"Test",
                    where:"id > ? ORDER BY id DESC LIMIT 50 ",
                    args:[1]
                },result=>{

                    uni.showModal({
                        content:JSON.stringify(result)
                    })

                });

10、删除表

          sqliteTool.removeTable("Test",result=>{
            uni.showModal({
                        content:JSON.stringify(result)
                    })

            });

10、查询表数据量(count)

sqliteTool.queryDataCount({
                "tableName":"Test",     
                where:"age>?", //可填
                args:[20] //可填;如果where中包含? 这个参数需传

                },result=>{

                    uni.showModal({
                         content:JSON.stringify(result)
                    })  

            });

隐私、权限声明

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

本插件利用的是系统自带的sqlite库,对该库进行了封装,便于用户进行数据的存储; Android: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission> iOS : 无

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

插件不采集任何数据,只是作为用户存储数据的工具

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

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