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);
}
)
});
}
})();
上一篇: jQuery里面能不能写PHP方法?
下一篇: JavaScript 设计模式之单例模式