WebSql用法(自我记录)
websql主要是依托浏览器环境下一种离线存储方式,主要是用于关系性数据库,与sqllite相似
判断浏览器是否支持
if(window.openDatabase){ console.log(“浏览器支持DataBase”); }
创建、打开数据库
1、openDatabase 参数说明
- 数据库名称
- 版本号
- 数据库别名或者是介绍
- 数据库大小
- 数据库创建成功回调函数(可为空)
- 数据库创建失败的回调函数(可为空)
var db = openDatabase("appdb", "1.0", "appdatabase", 1024 * 1024 * 100, function(result) { console.log("首页:创建数据库成功"); db = result; }); if(!db) { console.log("数据库创建失败!"); return; } else { console.log("数据库创建成功!"); }
创建表
trancaction 为数据库的事务函数,所有操作都需要经过事务处理,如果中间出同SQL语句错误则事务进行回事,所括建表语句都会回滚(ORACLE 里面PLSQL建表是不会回滚的,最开始在这块整蒙了)
- 操作块
- 事务失败的回调函数
- 事务成功的回调函数
db.transaction(function(tx) { var sql = "CREATE TABLE IF NOT EXISTS ServerInfo (XF_XJ TEXT)"; tx.executeSql(sql, []); }, function(error) { //执行失败的回调函数 console.log("数据初始化失败,失败原因:" + error.message); }, function(result) { //执行成功的回调函数 console.log("数据初始化成功"); });
在建表语句里IF NOT EXISTS表示判断表是否存在,如果存在则不建表(注意的是,如果不添加此语句,在新建时如果表已存在,他会重新建立,表内的数据则会清空)
CREATE TABLE IF NOT EXISTS ServerInfo (XF_XJ TEXT)
增加,删除,修改
在增加删除修改内也需要用到transaction方法
通过executeSql可进行增加,删除,修改等操作
- sql语句
- sql参数
- 成功回调函数
- 错误回调函数
db.transaction(function(tx) { var sql = "insert into CaoZuoYuan(user,name,password)values(0001,系统管理员,12345)"; tx.executeSql(sql, []); });
这里直接生成SQL语句,你也可以用参数的方法
db.transaction(function(tx) { var sql = "insert into CaoZuoYuan(user)values(?)"; tx.executeSql(sql, [0001]); });
更新和删除与之相同
查询功能的实现
1、判断数据是否存在
db.transaction(function(tx) { tx.executeSql(select * from CaoZuoYuan, [], function(tx, results) { var len = results.rows.length; if (len<1) { var sql = "insert into CaoZuoYuan(user,name,password)values(0001,系统管理员,12345)"; tx.executeSql(sql, []); } }); });
2、查询数据并循环到列表
db.transaction(function(tx) { tx.executeSql(select * from CaoZuoYuan where user=" + appview.user_id + ", [], function(tx, results) { len = results.rows.length; if(len < 1) { alert("用户名或密码错误!"); return; } for (i = 0; i < len; i++) { alert(results.rows.item(i).name); } }, null); });
下一篇:
数据库基础入门(mysql)