更新记录

1.0.1(2022-10-31)

mysql数据库版本8.x,支持增删查改,自定义sql,连接/断开,判断连接状态, 支持连接多个数据库


平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 12.0 armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 适用版本区间:9 - 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原生插件配置”->”云端插件“列表中删除该插件重新选择


功能

原生连接mysql数据库,支持增删查改,自定义mysql,连接/断开,判断连接状态, 支持连接多个数据库 该插件支持mysql版本为8.x,如果mysql版本为5.x,请使用插件https://ext.dcloud.net.cn/plugin?id=9900

API方法

  • 声明

// mysql 8.x版本
 var mysql = uni.requireNativePlugin("wrs-mysql8");

// 如果需要连接多个mysql数据库,可以声明多个变量,如:
// var mysql1 = uni.requireNativePlugin("wrs-mysql8");
// var mysql2 = uni.requireNativePlugin("wrs-mysql8");
  • 连接mysql

                mysql.connect({
                    ip: this.ip, // 数据库IP或域名
                    port: 3306, // 端口
                    user: this.user, // 用户名或账号
                    password: this.password, // 密码
                    dbName: this.dbName, // 数据库名称
                    otherParams: { // 其它连接参数,key、value都是字符串类型
                        autoReconnect: "true",
                        characterEncoding: "utf-8",
                        mysqlEncoding: "utf8",
                        useSSL: "true",
                        serverTimezone: "Hongkong",
                        connectTimeout: "3000" // 连接超时时间,单位毫秒
                    }
                }, (resp) => {
                    if (resp.flag) { // 连接成功
                        this.showMsg("连接成功");
                    } else {
                        this.showMsg("连接失败");
                    }
                });

其中otherParams参数里面,ios只支持otherParams.characterEncoding参数,参数范围为utf-8、bg2312,更多参数请联系作者(QQ:252797991)


                mysql.insert({
                    table: "User",
                    keyValues: {
                        account: "ssss",
                        password: "sss",
                        money: 12.3,
                        count: 100,
                        create_time: "2022-10-26 12:00:00",
                        update_time: "2022-10-26"
                    }
                }, (resp) => {
                    this.showMsg(JSON.stringify(resp));
                });

                mysql.delete({
                    table: "User",
                    where: "account='ssss'"
                }, (resp) => {
                    this.showMsg(JSON.stringify(resp));
                });
  • 查,其中数据库里日期这些特殊类型iOS里返回的是字符串,android返回的是时间戳,需要uniapp去适配

                mysql.query({
                    table: "User",
                    where: "account='ssss'",
                    orderBy: ["account"],
                    asc: true,
                    queryColumn: true // 是否返回表字段名称,非必填
                }, (resp) => {
                    this.showMsg(JSON.stringify(resp));
                });
  • 执行没有返回值的sql, 如修改表,删除表等

                mysql.executeSql({
                    sql: "DROP TABLE `User`"
                }, (resp) => {
                    this.showMsg(JSON.stringify(resp));
                });
  • 执行有返回值的sql,如自定义查询,分页查询,左右连接查询等

                mysql.executeSqlAndFetchResult({
                    sql: "select * from User",
                    queryColumn: true // 是否返回对应字段名称,非必填
                }, (resp) => {
                    this.showMsg(JSON.stringify(resp));
                });
  • 断开连接

    // 断开连接
    mysql.disConnect();
  • 判断是否连接

   var resp = mysql.isConnected();
   if(isString(resp)) {
       resp = JSON.parse(resp);
   }
   var isConnected = resp.isConnected;
   if(isConnected) {

   } else {

   }

支持定制,联系方式 QQ:252797991

如果觉得可以就点个👍吧,欢迎粉丝收藏,土豪打赏,您的关注就是我们创作的动力!

隐私、权限声明

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

网络权限

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

插件不采集任何数据

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

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