`
chenfeng_lian
  • 浏览: 9448 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

html5 本地数据库的sql操作

阅读更多
 //********************************
	//****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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics