欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

HTML5 DataBase

程序员文章站 2022-03-04 13:00:45
...

一,web     DataBase
    浏览器的本地储存,离开本机,数据不存在
    使用js语法操作数据库
    有三个最重要API
        var database = openSatabase(name,v,des,size,callback);
        创建或打开已有的数据库
        参数1:数据库的名称(如果名称存在就是打开,不存在就创建);
        参数2:数据库版本号
        参数3:数据库描述
        参数4:数据库字段空间大小(B)
        参数5:回调函数
    2)database.transaction(function(tx){})
        数据库语句实现的位置在fun中
        fun:是一个函数
    3)tx.executeSql(sql,arr,success,error);
        执行SQL语句的地方
        参数1:SQL语句
        参数2:SQL语句中使用?替代的字段
        参数3:执行成功的回调
        参数4:执行失败的回调

 

下面是一个关于DataBase封装的js

(function(){
	//创建或打开数据库
	window.createDataBase = createDataBase;
	//创建表
	window.createTable = createTable;
	//删除表
	window.deleteTable = deleteTable;
	//添加数据
	window.addData = addData;
	//删除数据
	window.deleteData = deleteData;
	//清空数据表
	window.clearTable = clearTable;
	//修改数据
	window.updateData = updateData;
	//查询所有数据
	window.selectAll = selectAll;
	//查询一条数据
	window.selectOne = selectOne;

	//1,创建或打开数据库
	function createDataBase(DBname,v,des,size){
		return openDatabase(DBname,v,des,size,function(){});
	}
	//2,创建表
	function createTable(db,tabName,arr,callback){
		db.transaction(function(tx) {
				var sqlStr = arr.join(',');
				tx.executeSql(
						'create table if not exists '+tabName+' ('+sqlStr+')',
						[],
						function(tx,result) {
							callback && callback(1);
						},
						function(tx,error) {
							callback && callback(0);
						}
					);
			});
	}
	//3,删除表
	function deleteTable(db,tabName,callback){
		db.transaction(function(tx) {

				tx.executeSql(
						'drop table '+tabName,
						[],
						function(tx,result) {
							callback && callback(1);
						},
						function(tx,error) {
							callback && callback(0);
						}
					);
			});
	}
	//4,添加数据
		function addData(db,tabName,obj,callback){
		var keys='';
		var vals='';
		for(var k in obj){
			keys += k+',';
			if (k=='name') {
				vals+='"'+obj[k]+'",';
			}else{
				vals += obj[k]+','
			}
			
		}
		keys=keys.slice(0,keys.length-1)
		vals=vals.slice(0,vals.length-1)
		var str='insert into '+tabName+' ('+keys+') values('+vals+')';
			db.transaction(function(tx){
				tx.executeSql(
						str,
						[],
						function(tx,result) {
							callback&&callback(1);
						},
						function(tx,error) {
							callback&&callback(0);
						}
					);
			});
		}
	//5,删除一条数据
	function deleteData(db,tabName,ID,callback) {
		db.transaction(function(tx) {
			tx.executeSql(
				'delete from '+tabName+' where id = ?',
				[ID],
				function(tx,result) {
					callback && callback(1);
				},
				function(tx,error) {
					callback && callback(0);
				}
			)
		});
	}
	//6,删除所有数据
	function clearTable(db,tabName,callback){
			db.transaction(function(tx) {
				tx.executeSql(
						'delete from '+tabName,
						[ID],
						function(tx,result) {
							callback && callback(1);
						},
						function(tx,error) {
							callback && callback(0);
						}
					)
			});
	}
	//7,更新数据
	function updateData(db,tabName,ID,obj,callback){
		var str = '';
		for (var k in obj) {
			if (k == name) {
				str += k + ' = "' + obj[k] + '",';
			}else{
				str += k + ' = ' + obj[k] + ',';
			}
			
		}
		str = str.slice(0,str.length-1);
		db.transaction(function(tx) {
				tx.executeSql(
						'update '+tabName+' set '+str+' where id = ?',
						[ID],
						function(tx,result) {
							callback && callback(1);
						},
						function(tx,error) {
							callback && callback(0);
						}
					)
			});
	}
	//8,查询所有数据
	function selectAll(db,tabName,callback) {
		var obj = {};
		db.transaction(function(tx) {
			tx.executeSql(
				'select * from ' + tabName,
				[],
				function(tx,result) {
					obj.res = 1;
					obj.arr = result.rows;
					callback && callback(obj);
				},
				function(tx,error) {
					obj.res = 0;
					obj.arr = error;
					callback && callback(obj);
				}
			)
		});
	}
	//9,查询一条数据
	function selectOne(db,tabName,ID,callback) {
		var obj = {};
		db.transaction(function(tx) {
			tx.executeSql(
				'select * from ' + tabName + ' where id = ?',
				[ID],
				function(tx,result) {
					obj.res = 1;
					obj.arr = result.rows;
					callback && callback(obj);
				},
				function(tx,error) {
					obj.res = 0;
					obj.arr = error;
					callback && callback(obj);
				}
			)
		});
	}
})();

 

相关标签: DataBase