html5 本地数据库的sql操作

9 篇文章 0 订阅
 //********************************
	//****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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值