html5数据库增删改查

本文数据库操作使用的javaScript库是html5sql.js,官网地址: http://html5sql.com/

简介:

html5sql是一个让HTML5 Web Database使用更方便的轻量级JavaScript模块,它的基本功能是提供在一个事务中顺序执行SQL语句的结构。虽然 Web Database并没有停止

前进的脚步,这个模块仅仅可以简化与数据库的交互过程。这个模块还包含有其他很多小细节以便开发人员能够更简单,自然便捷的工作。

操作:

文中使用到的SQlite语句:

var SQL_TABLE = 'DROP TABLE IF EXISTS taskList;CREATE TABLE taskList (id INTEGER PRIMARY KEY AUTOINCREMENT, date TEXT, title TEXT);';
var SQL_SELECT = 'SELECT * FROM taskList;';
var SQL_INSERT = 'INSERT INTO taskList(date, title) VALUES(?,?);';
var SQL_SELECT_DETAIL = 'SELECT * FROM taskList WHERE date = ?;';
var SQL_UPDATE = 'UPDATE taskList SET title = ? WHERE date = ?;';
var SQL_DELETE = 'DELETE FROM taskList WHERE date = ?;';

1、在执行增删改查操作之前必须先打开数据库,openDatabase()的作用是打开一个数据库连接并返回对连接的引用。

/* 
 * name: 数据库的名称
 * displayname: 数据库描述名称
 * size: 数据库大小
 * whenOpen: 打开数据库后,获取到数据库连接时回调
 */
 html5sql.openDatabase('taskList', 'taskList', 5 * 1024 * 1024, function(){
   console.log('打开数据库成功');  
 });

2、设置数据库版本,changeVersion()的作用是将旧版本号修改为新版本号,并执行sqlInput语句。

/*
 * oldVersion: 旧版本号
 * newVersion: 新版本号
 * sqlInput: sql语句
 * finalSuccessCallback: 成功回调
 * failuerCallback: 失败回调
 */   		
 if (html5sql.database.version == "") {
    html5sql.changeVersion('', '1.0', SQL_TABLE, function(){
   	console.log('数据库不存在,设置版本号成功');
    }, function(){
	console.log('数据库不存在,设置版本号失败');
    });
 }else {
    console.log('数据库已存在,版本为:' + html5sql.database.version);
 }

3、增删改查

html5sql对数据库的增删改查操作都由同一个方法执行,process()

1)、插入数据

var date = '2016年11月10日';
var title = '准备资金双11买买买';
html5sql.process([{
   	            'sql': SQL_INSERT,
   		    'data': [date, title]
   		}], function(){
   		    console.log('插入数据成功');
   		    successCallback();
   		}, function(){
   		    console.log('插入数据失败');
   		    failureCallback();
   		});
2)、查询数据
html5sql.process([{
   		   'sql': SQL_SELECT,
   		   'data':[]
   		}], function(tx, results){
 		   console.log('查询到' + results.rows.length + '条数据');
		   //获取查询结果的第一条记录,得到的是一个对象
                   var item = results.rows.item(0);
		   //获取对象的各个属性
                   var date = item.date;
		   var title = item.title;
 		   successCallback(results);
   		}, function(){
   		   console.log('查询数据失败');
   		});
3)、修改数据
var title = '读一本有益的书';
html5sql.process([{
   		   'sql': SQL_UPDATE,
   		   'data': [title]
   		}], function(){
   		   console.log('修改数据成功');
   		}, function(){
   		   console.log('修改数据失败');
   		});
4)、删除数据
var date = '2016年11月9日';
html5sql.process([{
   		   'sql': SQL_DELETE, 
   		   'data':[date]
   		}], function(){
   		   console.log('删除数据成功');
   		}, function(){
   		   console.log('删除数据失败');
   		});

process(sqlInput, finalSuccessCallback, failureCallback)中的第一个参数sqlInput支持三种输入模式,第一种为单条sql语句, 第二种为一组sql语句,第三种为一组sql语句对象。上面的例子就是第三种模式

//单条sql语句,字符串的形式
var sql = 'SELECT * FROM taskList';
html5sql.process(sql, function(){
   console.log('查询数据成功');
}, function(){
console.log('查询数据失败'); });

//或者sql这样写:
sql ="CREATE taskList (id INTEGER PRIMARY KEY AUTOINCREMENT, date TEXT, title TEXT);" +
"INSERT INTO taskList (date, title) VALUES ('2016年11月8日', '花园除草');" +
"INSERT INTO taskList (date, title) VALUES ('2016年11月9日', '书店买书');" +
"INSERT INTO taskList (date, title) VALUES ('2016年11月10日', '超市买菜');";
//一组sql语句,只是把上面的字符串拆成几个字符串,装到数组里面
sql =["CREATE taskList (id INTEGER PRIMARY KEY AUTOINCREMENT, date TEXT, title TEXT);",
"INSERT INTO taskList (date, title) VALUES ('2016年11月8日', '花园除草');",
"INSERT INTO taskList (date, title) VALUES ('2016年11月9日', '书店买书');",
"INSERT INTO taskList (date, title) VALUES ('2016年11月10日', '超市买菜');"];
html5sql.process(sql, function(){
   console.log('查询数据成功');
}, function(){
   console.log('查询数据失败');
});




  • 8
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值