DatabaseManager.js 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. /**
  2. * 创建者:王成
  3. * 创建日期:2022年1月12日
  4. * 描述:数据库管理
  5. */
  6. /**
  7. * 数据库通用配置
  8. */
  9. var DB_DatabaseFileName = 'dInfo.db';
  10. var DB_DatabaseName = 'dInfo';
  11. var DB_DatabasePath = '_doc/dInfo.db';
  12. /**
  13. * 检查数据库
  14. * @param {JSON} options 配置项
  15. * success(msg){function} 成功回调
  16. * error(err):{function} 失败回调
  17. */
  18. function DB_CheckDatabase(options) {
  19. mui.plusReady(function() {
  20. plus.io.requestFileSystem(plus.io.PRIVATE_DOC, function(fs) {
  21. fs.root.getFile(DB_DatabaseFileName, {
  22. create: false
  23. }, function(fileEntry) {
  24. if (options.success != undefined) options.success("dInfo.db数据库文件已经存在!");
  25. }, function(e) {
  26. //不存在 则复制
  27. plus.io.resolveLocalFileSystemURL('_www/data/dInfo.db', function(entry) {
  28. plus.io.resolveLocalFileSystemURL('_doc', function(docEntry) {
  29. entry.copyTo(docEntry, DB_DatabaseFileName, function() {
  30. //复制失败
  31. if (options.success != undefined) options
  32. .success("dInfo.db数据库文件拷贝成功,可以使用!");
  33. }, function(err) {
  34. if (options.error != undefined) options
  35. .error("数据库文件拷贝失败!");
  36. })
  37. });
  38. }, function(err) {
  39. //请求的数据库文件不存在
  40. if (options.error != undefined) options.error(JSON.stringify(err) +
  41. "项目中不存在dInfo.db文件,请拷贝!");
  42. });
  43. });
  44. });
  45. })
  46. }
  47. /**
  48. * 打开数据库
  49. * @param {JSON} options 配置项
  50. * success(msg){function} 成功回调
  51. * error(err):{function} 失败回调
  52. */
  53. function DB_OpenDatabase(options){
  54. mui.plusReady(function() {
  55. //首先打开数据库 看是否存在并可以打开
  56. plus.sqlite.openDatabase({
  57. name: DB_DatabaseName,
  58. path: DB_DatabasePath,
  59. success: function(e) {
  60. if(options.success != undefined) options.success();
  61. },
  62. fail: function(e) {
  63. if (options.error != undefined) options.error(JSON.stringify(e));
  64. }
  65. })
  66. });
  67. }
  68. /**
  69. * 关闭数据库
  70. * @param {JSON} options 配置项
  71. * success(msg){function} 成功回调
  72. * error(err):{function} 失败回调
  73. */
  74. function DB_CloseDatabase(options){
  75. mui.plusReady(function() {
  76. //首先打开数据库 看是否存在并可以打开
  77. plus.sqlite.closeDatabase({
  78. name: DB_DatabaseName,
  79. success: function(e) {
  80. if(options.success != undefined) options.success();
  81. },
  82. fail: function(e) {
  83. if (options.error != undefined) options.error(JSON.stringify(e));
  84. }
  85. })
  86. });
  87. }
  88. /**
  89. * 查询数据库
  90. * @param {JSON} options 配置项
  91. * sql{string}:查询语句
  92. * success(msg){function} 成功回调
  93. * error(err):{function} 失败回调
  94. */
  95. function DB_TaskQuery(options) {
  96. DB_OpenDatabase({
  97. success:function(){
  98. //打开成功 执行查询
  99. plus.sqlite.selectSql({
  100. name: DB_DatabaseName,
  101. sql:options.sql,
  102. success:function(resData){
  103. DB_CloseDatabase({
  104. success:function(){
  105. if(options.success != undefined) options.success(resData);
  106. },
  107. error:function(err){
  108. if (options.error != undefined) options.error(err);
  109. }
  110. });
  111. },
  112. fail:function(e){
  113. /* 查询失败 */
  114. DB_CloseDatabase({
  115. success:function(){
  116. if (options.error != undefined) options.error(JSON.stringify(e));
  117. },
  118. error:function(err){
  119. if (options.error != undefined) options.error(err);
  120. }
  121. });
  122. }
  123. })
  124. },
  125. error:function(err){
  126. if (options.error != undefined) options.error(err);
  127. }
  128. })
  129. }
  130. /**
  131. * 查询数据库
  132. * @param {JSON} options 配置项
  133. * sql{string|Array[]}:查询语句
  134. * success(msg){function} 成功回调
  135. * error(err):{function} 失败回调
  136. */
  137. function DB_TaskExecute(options) {
  138. DB_OpenDatabase({
  139. success:function(){
  140. //打开成功 执行查询
  141. plus.sqlite.executeSql({
  142. name: DB_DatabaseName,
  143. sql:options.sql,
  144. success:function(resData){
  145. DB_CloseDatabase({
  146. success:function(){
  147. if(options.success != undefined) options.success(resData);
  148. },
  149. error:function(err){
  150. if (options.error != undefined) options.error(err);
  151. }
  152. });
  153. },
  154. fail:function(e){
  155. /* 查询失败 */
  156. DB_CloseDatabase({
  157. success:function(){
  158. if (options.error != undefined) options.error(JSON.stringify(e));
  159. },
  160. error:function(err){
  161. if (options.error != undefined) options.error(err);
  162. }
  163. });
  164. }
  165. })
  166. },
  167. error:function(err){
  168. if (options.error != undefined) options.error(err);
  169. }
  170. })
  171. }