PhoneGap HTML5 DB操作类, 做本地存储
类库优点:
1. 快速建表
2. 封装CURD操作,更加简洁
3. 兼容PhoneGap
4. 自己用着顺手,简化操作
- void function(version){
- var app = function(e) {
- _this.DB;
- }
- /**
- * 初始化数据库
- * @param {String} dbName
- * @param {String} dbVersion
- * @param {String} dbDesc
- * @param {String} dbSize
- */
- app.prototype.dbConnect = function(dbName,dbVersion,dbDesc,dbSize){
- try {
- if (!window.openDatabase) {
- console.log('Databases are not supported in this browser.');
- return false;
- } else {
- dbName = dbName ? dbName : 'SHICAI_APP';
- dbVersion = dbVersion ? dbVersion : '1.0';
- dbDesc = dbDesc ? dbDesc : 'SHICAI_DB for User Mobile';
- dbSize = dbSize ? dbSize : (2 * 1024 * 1024);
- _this.DB = openDatabase(dbName, dbVersion, dbDesc, dbSize);
- return true;
- }
- } catch(e) {
- if (e == 2) {
- console.log("Invalid database version.");
- } else {
- console.log("Unknown error "+e+".");
- }
- return false;
- }
- }
- /**
- * 创建表
- * @param {String} tableName
- * @param {Object} tableField
- */
- app.prototype.dbDefineTable = function(tableName,tableField){
- if(!tableName || !tableField){
- console.log('ERROR: Function "dbCreateTable" tableName or tableField is NULL.');
- }
- var fieldArr = [];
- var fieldItem;
- var i = 0;
- for (var field in tableField){
- field.toString();
- tableField[field].toString();
- fieldArr[i] = field+' '+tableField[field];
- i++;
- }
- fieldItem = fieldArr.join(",").toString();
- var SQL = 'CREATE TABLE IF NOT EXISTS '+tableName+' (';
- SQL += fieldItem;
- SQL +=')';
- console.log(SQL);
- _this.DB.transaction(function(tx){
- tx.executeSql(SQL,[],function(tx,result){
- return true;
- },function(tx,error){
- console.log(error);
- return false;
- });
- });
- }
- /**
- * 插入数据
- * @param {String} tableName
- * @param {Object} tableField
- * @param {Function} funName
- */
- app.prototype.dbInsert = function(tableName,tableField,funName){
- if(!tableField){
- console.log('ERROR: FUNCTION dbInsert tableField is NULL');
- return false;
- }
- var fieldKeyArr = [];
- var fieldValueArr = [];
- var fieldKey;
- var fieldValue;
- var i = 0;
- for (var field in tableField){
- field.toString();
- tableField[field].toString();
- fieldKeyArr[i] = field;
- fieldValueArr[i] = tableField[field];
- if(typeof(fieldValueArr[i]) !== 'number'){
- fieldValueArr[i] = '"'+fieldValueArr[i]+'"';
- }
- i++;
- }
- fieldKey = fieldKeyArr.join(",");
- fieldValue = fieldValueArr.join(",");
- var SQL = 'INSERT INTO '+tableName+' (';
- SQL += fieldKey;
- SQL += ') ';
- SQL += 'VALUES (';
- SQL += fieldValue;
- SQL += ')';
- console.log(SQL);
- _this.DB.transaction(function(tx){
- tx.executeSql(SQL,[],function(tx,result){
- funName(result);
- },function(tx,error){
- console.log(error);
- return false;
- });
- });
- }
- /**
- * 查询所有结果
- * @param {String} tableName
- * @param {Function} funName
- * @param {Object} tableField
- * @param {Object} dbParams
- */
- app.prototype.dbFindAll = function(tableName,funName,tableField,dbParams){
- tableField = tableField ? tableField : '*';
- if(!tableName || !funName){
- console.log('ERROR: Function "dbFindAll" tableName or funName is NULL.');
- }
- var SQL = '';
- SQL +='SELECT '+tableField+' FROM '+tableName;
- _this.DB.transaction(function(tx){
- tx.executeSql(SQL,[],_findSuccess,function(tx,error){
- console.log(error);
- return false;
- });
- });
- function _findSuccess(tx,result){
- funName(result);
- }
- }
- /**
- * 删除数据
- * @param {String} tableName
- * @param {Object} dbParams
- * @param {Function} funName
- */
- app.prototype.dbDelete = function(tableName,dbParams,funName){
- if(!tableName || !dbParams){
- console.log('ERROR: FUNCTION "dbDelete" tableName or dbParams is NULL');
- return false;
- }
- var SQL = '';
- SQL +='DELETE FROM '+tableName+' WHERE ';
- var paramArr = new Array();
- var paramStr = '';
- var i=0;
- for(var k in dbParams){
- if(typeof(dbParams[k]) !== 'number'){
- dbParams[k] = '"'+dbParams[k]+'"';
- }
- paramArr[i] = k.toString()+'='+dbParams[k];
- i++;
- }
- paramStr = paramArr.join(" AND ");
- SQL += paramStr;
- _this.DB.transaction(function(tx){
- tx.executeSql(SQL);
- },[],function(tx,result){
- funName(result);
- },function(tx,error){
- console.log(error);
- return false;
- });
- console.log(SQL);
- }
- /**
- * 更新数据表
- * @param {String} *tableName
- * @param {Object} *dbParams
- * @param {Object} *dbWhere
- * @param {Function} funName
- */
- app.prototype.dbUpdate = function(tableName,dbParams,dbWhere,funName){
- var SQL = 'UPDATE '+tableName+' SET ';
- var paramArr = new Array();
- var paramStr = '';
- var i=0;
- for(var k in dbParams){
- if(typeof(dbParams[k]) !== 'number'){
- dbParams[k] = '"'+dbParams[k]+'"';
- }
- paramArr[i] = k.toString()+'='+dbParams[k];
- i++;
- }
- paramStr = paramArr.join(" , ");
- SQL += paramStr;
- SQL += ' WHERE ';
- var whereArr = new Array();
- var whereStr = '';
- var n=0;
- for(var w in dbWhere){
- if(typeof(dbWhere[w]) !=='number'){
- dbWhere[n] = '"'+dbWhere[w]+'"';
- }
- whereArr[n] = w.toString()+'='+dbWhere[w];
- n++;
- }
- whereStr = whereArr.join(" AND ");
- SQL += whereStr;
- _this.DB.transaction(function(tx){
- tx.executeSql(SQL);
- },[],function(tx,result){
- funName(result);
- },function(tx,error){
- console.log(error);
- return false;
- });
- console.log(SQL);
- }
- /**
- * 清空数据表
- * @param {String} tableName
- * @return {Boolean}
- */
- app.prototype.dbTruncate = function(tableName){
- if(!tableName){
- console.log('ERROR:Table Name is NULL');
- return false;
- }
- function _TRUNCATE(tableName){
- _this.DB.transaction(function(tx){
- tx.executeSql('DELETE TABLE '+tableName);
- },[],function(tx,result){
- console.log('DELETE TABLE '+tableName);
- return true;
- },function(tx,error){
- console.log(error);
- return false;
- })
- }
- _TRUNCATE(tableName);
- }
- /**
- * @desc 删除数据表
- * @param {String} tableName
- * @return {Boolean}
- */
- app.prototype.dbDrop = function(tableName){
- if(!tableName){
- console.log('ERROR:Table Name is NULL');
- return false;
- }
- function _DROP(tableName){
- _this.DB.transaction(function(tx){
- tx.executeSql('DROP TABLE '+tableName);
- },[],function(tx,result){
- console.log('DROP TABLE '+tableName);
- return true;
- },function(tx,error){
- console.log(error);
- return false;
- })
- }
- _DROP(tableName);
- }
- }('1.0');
PhoneGap 的详细介绍:请点这里
PhoneGap 的下载地址:请点这里
相关推荐
IT之家 2020-03-11
graseed 2020-10-28
zbkyumlei 2020-10-12
SXIAOYI 2020-09-16
jinhao 2020-09-07
impress 2020-08-26
liuqipao 2020-07-07
淡风wisdon大大 2020-06-06
yoohsummer 2020-06-01
chenjia00 2020-05-29
baike 2020-05-19
扭来不叫牛奶 2020-05-08
hxmilyy 2020-05-11
黎豆子 2020-05-07
xiongweiwei00 2020-04-29
Cypress 2020-04-25
冰蝶 2020-04-20