JavaScript操作sqlite

在html5中内置了两种数据库,一种为SQLite(也是WebSQL),另一种为indexedDB。
sqlite的api参考:http://www.phonegapcn.com/docs/zh/cn/storage.html

支持情况:
SQLite 数据库可以在最新版的 Safari, Chrome 和 Opera 浏览器中工作。

核心方法:

1、openDatabase:这个方法使用现有的数据库或者新建的数据库创建一个数据库对象。
2、transaction:这个方法让我们能够控制一个事务,以及基于这种情况执行提交或者回滚。
3、executeSql:这个方法用于执行实际的 SQL 查询。

创建数据库对象

 var db = openDatabase("myDB","1.0","test db",1024*100);
说明: 
1. 该方法返回的是创建的数据库的对象,如果该数据库不存在才会创建这个数据库。 
2. 第一个参数:数据库的名称 
   第二个参数:数据库的版本号 
   第三个参数:数据库的描述 
   第四个参数:数据库的大小

使用数据库

  db.transaction(function(tx){
        tx.executeSql("");
    })
说明: 
1.使用事务处理的原因:可以防止对数据库进行访问、执行有关操作时受到外界的干扰。在web上可能同时有很多人对网页进行访问,如果在访问数据库的过程中,正在操作的数据库被其他用户修改了,会引起很多意想不到的结果,因此使用事务来达到操作完成之前阻止其他用户对数据库的访问。 
2.function(tx):是一个回调函数 
3.tx.executeSql():该方法是用来执行sql语句的。 
 transaction.executeSql(sqlquery,[],dataHandler,errorHandler) 
第一个参数:是数据库操作的sql语句 
第二个参数:sql语句中所使用的参数的数组 
第三个参数:成功执行sql语句后调用的回调函数, 
function dataHandler(transaction,results) 
第四个参数:执行sql语句时,如果出错调用的回调函数, 
function errorHandler(transaction,errmsg)

例:

//建表
var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);
db.transaction(function (tx) { 
   tx.executeSql('CREATE TABLE IF NOT EXISTS WIN (id unique, name)');
});
//插入数据
db.transaction(function (tx) {
   tx.executeSql('INSERT INTO WIN (id, name) VALUES (1, "winty")');
   tx.executeSql('INSERT INTO WIN (id, name) VALUES (2, "LuckyWinty")');
});
//查找数据
db.transaction(function (tx) {
   tx.executeSql('SELECT * FROM WIN', [], function (tx, results) {
      var len = results.rows.length, i;
      for (i = 0; i < len; i++){
         alert(results.rows.item(i).name );
      }
     
   }, null);
});

说明:result是数据查找的结果集,关于结果集的使用可以参考:http://www.phonegapcn.com/docs/zh/cn/storage.html#SQLResultSet

    原文作者:逗比小骷髅
    原文地址: https://www.jianshu.com/p/70574c99325e
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞