//******************************** //****Html5 管理本地数据库脚本**** //******************************** var LOCAL = window.LOCAL || {}, win = window; LOCAL.LocalDB = function(options){ this.opts = $.extend({}, LOCAL.defaults, options); console.log(this.opts); } LOCAL.LocalDB.prototype = { //打开数据库 openDB: function() { var self = this, options = self.opts; try{ if(!options.dbObj) { options.dbObj = win.openDatabase(options.dbName, options.dbVersion, options.dbDescription, options.dbMaxSize); console.log(options.dbName + '数据库创建成功...'); } }catch(e){ console.log("打开数据库出现未知错误: " + e); options.dbObj = null; }; }, //连接数据库 getDBConn: function() { this.openDB(); }, //默认执行sql方式 executeSqlDefault: function(sqlStr, params, successHandler, errorHandler) { var self = this, options = self.opts; this.getDBConn(); options.dbObj.transaction(function(tx){ tx.executeSql(sqlStr, params, successHandler, errorHandler); }, null, null); }, //自定义sql函数执行 executeSqlTrans: function(fun, successHandler, errorHandler) { var self = this, options = self.opts; this.getDBConn(); options.dbObj.transaction(fun, successHandler, errorHandler); }, //修改数据库版本信息 changeDBVersion: function(newVersion) { var self = this, options = self.opts; this.getDBConn(); options.dbObj.changeVersion(options.dbVersion, newVersion, null, errorFun, null); }, //判断某表是否存在:表名、存在回调函数、不存在回调函数 isExitTable: function(tableName, exitFun, notExitFun) { var self = this, options = self.opts, sql = "select * from sqlite_master where type='table' and name = ?"; this.getDBConn(); options.dbObj.transaction(function(tx) { tx.executeSql(sql, [tableName], function(transaction, result) { if (result.rows.length > 0 && exitFun) { exitFun.call(); } else if (result.rows.length <= 0 && notExitFun) { notExitFun.call(); } }, null); }); }, //删除表数据:表名,删除成功回调函数 delTableData: function(tableName, callBackFun) { var self = this, options = self.opts, sql = 'delete form ?' this.getDBConn(); options.dbObj.transaction(function(tx) { tx.executeSql(sql, [tableName], callBackFun, null); }); }, //删除表,删除成功回调函数 dropTable: function(tableName, callBackFun) { var self = this, options = self.opts, sql = 'drop table ?' this.getDBConn(); options.dbObj.transaction(function(tx) { tx.executeSql(sql, [tableName], callBackFun, null); }); } }; LOCAL.defaults = { dbName: 'book',//数据库名 dbVersion: '1.0',//版本信息 dbDescription: 'just test',//描述 dbMaxSize: 1024*1024*1024,//最大值 dbObj: null }
基于jquery