/** * 创建者:王成 * 创建日期:2022年1月12日 * 描述:数据库管理 */ /** * 数据库通用配置 */ var DB_DatabaseFileName = 'dInfo.db'; var DB_DatabaseName = 'dInfo'; var DB_DatabasePath = '_doc/dInfo.db'; /** * 检查数据库 * @param {JSON} options 配置项 * success(msg){function} 成功回调 * error(err):{function} 失败回调 */ function DB_CheckDatabase(options) { mui.plusReady(function() { plus.io.requestFileSystem(plus.io.PRIVATE_DOC, function(fs) { fs.root.getFile(DB_DatabaseFileName, { create: false }, function(fileEntry) { if (options.success != undefined) options.success("dInfo.db数据库文件已经存在!"); }, function(e) { //不存在 则复制 plus.io.resolveLocalFileSystemURL('_www/data/dInfo.db', function(entry) { plus.io.resolveLocalFileSystemURL('_doc', function(docEntry) { entry.copyTo(docEntry, DB_DatabaseFileName, function() { //复制失败 if (options.success != undefined) options .success("dInfo.db数据库文件拷贝成功,可以使用!"); }, function(err) { if (options.error != undefined) options .error("数据库文件拷贝失败!"); }) }); }, function(err) { //请求的数据库文件不存在 if (options.error != undefined) options.error(JSON.stringify(err) + "项目中不存在dInfo.db文件,请拷贝!"); }); }); }); }) } /** * 打开数据库 * @param {JSON} options 配置项 * success(msg){function} 成功回调 * error(err):{function} 失败回调 */ function DB_OpenDatabase(options){ mui.plusReady(function() { //首先打开数据库 看是否存在并可以打开 plus.sqlite.openDatabase({ name: DB_DatabaseName, path: DB_DatabasePath, success: function(e) { if(options.success != undefined) options.success(); }, fail: function(e) { if (options.error != undefined) options.error(JSON.stringify(e)); } }) }); } /** * 关闭数据库 * @param {JSON} options 配置项 * success(msg){function} 成功回调 * error(err):{function} 失败回调 */ function DB_CloseDatabase(options){ mui.plusReady(function() { //首先打开数据库 看是否存在并可以打开 plus.sqlite.closeDatabase({ name: DB_DatabaseName, success: function(e) { if(options.success != undefined) options.success(); }, fail: function(e) { if (options.error != undefined) options.error(JSON.stringify(e)); } }) }); } /** * 查询数据库 * @param {JSON} options 配置项 * sql{string}:查询语句 * success(msg){function} 成功回调 * error(err):{function} 失败回调 */ function DB_TaskQuery(options) { DB_OpenDatabase({ success:function(){ //打开成功 执行查询 plus.sqlite.selectSql({ name: DB_DatabaseName, sql:options.sql, success:function(resData){ DB_CloseDatabase({ success:function(){ if(options.success != undefined) options.success(resData); }, error:function(err){ if (options.error != undefined) options.error(err); } }); }, fail:function(e){ /* 查询失败 */ DB_CloseDatabase({ success:function(){ if (options.error != undefined) options.error(JSON.stringify(e)); }, error:function(err){ if (options.error != undefined) options.error(err); } }); } }) }, error:function(err){ if (options.error != undefined) options.error(err); } }) } /** * 查询数据库 * @param {JSON} options 配置项 * sql{string|Array[]}:查询语句 * success(msg){function} 成功回调 * error(err):{function} 失败回调 */ function DB_TaskExecute(options) { DB_OpenDatabase({ success:function(){ //打开成功 执行查询 plus.sqlite.executeSql({ name: DB_DatabaseName, sql:options.sql, success:function(resData){ DB_CloseDatabase({ success:function(){ if(options.success != undefined) options.success(resData); }, error:function(err){ if (options.error != undefined) options.error(err); } }); }, fail:function(e){ /* 查询失败 */ DB_CloseDatabase({ success:function(){ if (options.error != undefined) options.error(JSON.stringify(e)); }, error:function(err){ if (options.error != undefined) options.error(err); } }); } }) }, error:function(err){ if (options.error != undefined) options.error(err); } }) }