/**
2 *数据库操作辅助类,定义对象、数据操作方法都在这里定义
3 */
4 var dbname=‘yearstopic‘;
/*数据库名*/
5 var dbdesc = ‘历年真题题库‘;
/*数据库描述*/
6 var dbsize = 20*1024*1024;
/*数据库大小*/
7 var dataBase =
null;
/*暂存数据库对象*/
8 /*数据库中的表单名*/
9 var websqlTable = "websqlTable"
;
10 /**
11 * 打开数据库
12 * @returns dataBase:打开成功 null:打开失败
13 */
14 function websqlOpenDB(){
15 /*数据库有就打开 没有就创建*/
16 var version =
window.localStorage.DBversion;
17 dataBase =
window.openDatabase(dbname, version, dbdesc, dbsize);
18 if (dataBase) {
19 console.log("数据库创建/打开成功!"
);
20 }
else{
21 console.log("数据库创建/打开失败!"
);
22 }
23 return dataBase;
24 }
25 //修改数据库版本
26 function changeDataBaseVersion(old_version,new_version){
27 var db =
websqlOpenDB();
28 db.changeVersion(old_version,new_version,
null,
function(err){},
null)
29 window.localStorage.DBversion =
new_version;
30 }
31 /**
32 * 新建数据库里面的表单
33 * @param tableName:表单名
34 */
35 function websqlCreatTable(tableName){
36 // chinaAreaOpenDB();
37 var creatTableSQL = ‘CREATE TABLE IF NOT EXISTS ‘+ tableName+‘(ID text,QUESTION text)‘
;
38 dataBase.transaction(
function (ctx,result) {
39 ctx.executeSql(creatTableSQL,[],
function(ctx,result){
40 console.log("表创建成功 " +
tableName);
41 },
function(tx, error){
42 console.log(‘创建表失败:‘ + tableName +
error.message);
43 });
44 });
45 }
46 //插入数据
47 function websqlInsterDataToTable(tableName,id,question){
48 var question =
JSON.stringify(question);
49 var insterTableSQL = ‘INSERT INTO ‘ + tableName + ‘ VALUES (?,?)‘
;
50 dataBase.transaction(
function (ctx) {
51 ctx.executeSql(insterTableSQL,[id,question],
function (ctx,result){
52 console.log("插入" + tableName + id + "成功"
);
53 },
54 function (tx, error) {
55 console.log(‘插入失败: ‘ +
error.message);
56 });
57 });
58 }
59 /**
60 * 获取数据库一个表单里面的所有数据
61 * @param tableName:表单名
62 * 返回数据集合
63 */
64 function websqlGetAllData(tableName,fn){
65 var selectALLSQL = ‘SELECT * FROM ‘ +
tableName;
66 dataBase.transaction(
function (ctx) {
67 ctx.executeSql(selectALLSQL,[],
function (ctx,result){
68 console.log(‘查询成功: ‘ + tableName +‘__‘+
result.rows.length);
69 var len =
result.rows.length;
70 var queryDataArray =
[];
71 for(
var i = 0;i < len;i++
) {
72 queryDataArray.push(JSON.parse(result.rows.item(i).QUESTION));
73 }
74 fn(queryDataArray);
75 },
76 function (tx, error) {
77 console.log(‘查询失败: ‘ +
error.message);
78 });
79 });
80 }
81 //查询所有数据,获取json格式
82 function websqlGetAllDataJson(tableName,fn){
83 var selectALLSQL = ‘SELECT * FROM ‘ +
tableName;
84 dataBase.transaction(
function (ctx) {
85 ctx.executeSql(selectALLSQL,[],
function (ctx,result){
86 console.log(‘查询成功: ‘ + tableName +‘__‘+
result.rows.length);
87 var len =
result.rows.length;
88 var queryDataArray =
{};
89 for(
var i = 0;i < len;i++
) {
90 var id =
result.rows.item(i).ID;
91 id = id.replace(‘.0‘,‘‘
);
92 queryDataArray[id] =
JSON.parse(result.rows.item(i).QUESTION);
93 }
94 fn(queryDataArray);
95 },
96 function (tx, error) {
97 console.log(‘查询失败: ‘ +
error.message);
98 });
99 });
100 }
101 /**
102 * 获取数据库一个表单里面的部分数据
103 * @param tableName:表单名
104 * @param name:姓名
105 */
106 function websqlGetAData(tableName,id,fn){
107 var selectSQL = ‘SELECT * FROM ‘ + tableName + ‘ WHERE ID = ?‘
108 dataBase.transaction(
function (ctx) {
109 ctx.executeSql(selectSQL,[id+‘.0‘],
function (ctx,result){
110 fn && fn(JSON.parse(result.rows.item(0
).QUESTION))
111 },
112 function (tx, error) {
113 console.log(‘查询失败: ‘ +
error.message);
114 });
115 });
116 }
117
118 function webSqlDeleteTable(tabName){
119 dataBase.transaction(
function(tx) {
120 tx.executeSql(‘DROP TABLE ‘+tabName+‘‘
);
121 console.log(‘删除表‘+tabName+‘成功‘
)
122 },
123 function(tx,err){
124 console.log(‘删除表‘+tabName+‘失败‘
)
125 })
126 }
127 /**
128 * 删除表单里的全部数据
129 * @param tableName:表单名
130 */
131 function websqlDeleteAllDataFromTable(tableName){
132 var deleteTableSQL = ‘DELETE FROM ‘ +
tableName;
133 localStorage.removeItem(tableName);
134 dataBase.transaction(
function (ctx,result) {
135 ctx.executeSql(deleteTableSQL,[],
function(ctx,result){
136 console.log("删除表成功 " +
tableName);
137 },
function(tx, error){
138 console.log(‘删除表失败:‘ + tableName +
error.message);
139 });
140 });
141 }
就这么多吧,想起来了,再补充
javascript 本地数据库存储websql
标签:格式 服务端 bsp 多用户 跳转 i++ es2017 存在 情况