更新记录
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 |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
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