更新记录
2.0.0(2022-03-14)
- 增加count方法;
- 增加query方法,支持sql语句;
1.0.0(2021-10-08)
实现简单的curd
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:4.4 - 11.0 | armeabi-v7a:支持,arm64-v8a:支持,x86:未测试 | 适用版本区间:9 - 14 |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在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设置成全局可访问
const Mysql = uni.requireNativePlugin("janus-mysql")
接口说明
注意:所有的数据库操作都要在连接成功后进行
type MysqlConfig = {
server: string;
port: number;
user: string;
password: string;
db: string; // 数据库名
};
type RecordItem = Record<string, string | number | null>;
type selectOption = {
table: string;
where: string;
orderBy?: string[];
asc?: boolean;
};
type joinsOption = {
table: string;
type: 'left' | 'right' | 'inner' | 'full';
join: Map<string, string>; // {表2: '条件语句1', 表3: '条件语句2'},
fields: string[]; // 字段名一样时有歧义请用:表.字段
};
type insertOption = { table: string; data: RecordItem };
type deleteOption = { table: string; where: string };
type updateOption = insertOption & deleteOption;
interface MysqlResponse<T> {
// code -> 1:正常;0:出错;
(code: 0 | 1, data: T, message: string): void
}
export interface Mysql {
// 明文连接数据库
config: (option: MysqlConfig, callback: MysqlResponse<undefined>) => void;
// 加密数据库登录信息
encryptConfig: (option: MysqlConfig) => string;
// 根据密文连接数据库
connect: (encryptedString: string, callback: MysqlResponse<undefined>) => void;
// 断开连接
disconnect: () => void;
// 单表查询,返回数组
select: (option: selectOption, callback: MysqlResponse<RecordItem[]>) => void;
// 单表查询第一条,返回对象
find: (option: selectOption, callback: MysqlResponse<RecordItem>) => void;
// 查询记录数量
count: (option: { table: string }, callback: MysqlResponse<RecordItem>) => void;
// 多表查询
joins: (option: joinsOption, callback: MysqlResponse<RecordItem[]>) => void;
// 插入记录
insert: (option: insertOption, callback: MysqlResponse<undefined>) => void;
// 修改记录
update: (option: updateOption, callback: MysqlResponse<undefined>) => void;
// 删除记录
delete: (option: deleteOption, callback: MysqlResponse<undefined>) => void;
// 执行完整的SQL语句
query: (option: string, callback: MysqlResponse<RecordItem[]>) => void;
}