客户端持久化解决方案: Web SQL

客户端持久化解决方案: Web SQL

Web SQL 提供了一组使用 SQL 操做客户端数据库的 APIs, 不是 HTML5 规范的一部分,是一个独立的规范.web

核心方法

  • openDatabase: 打开或新建数据库,返回数据库对象。
  • transaction: 打开一个事务,从而能够执行提交或者回滚。
  • executeSql: 执行实际的 SQL 查询。

打开/建立数据库

// window.openDatabase(dbName, version, description, dbSize, [createCallback]);
// 注: 数据库建立时才会触发回调
var db = openDatabase('mydb', '1.0', 'Test DB', 2*1024*1024, function() { console.log('db created..')});

建立数据库以后,就能够经过executeSql建立表,进而执行CRUD操做.sql

建立表

var db = openDatabase(dbName);
db.transaction(function(transaction) {////开启事务,在回调中执行sql
    transaction.executeSql('CREATE TABLE IF NOT EXISTS user (id unique, name)');
});

插入数据

var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);
db.transaction(function (tx) {
   tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (id unique, log)');
   tx.executeSql('INSERT INTO LOGS (id, log) VALUES (1, "菜鸟教程")');
   tx.executeSql('INSERT INTO LOGS (id, log) VALUES (2, "www.runoob.com")');
});

读取数据

db.transaction(function (tx) {
   tx.executeSql('SELECT * FROM LOGS', [], function (tx, results) {
      var len = results.rows.length, i;
      msg = "<p>查询记录条数: " + len + "</p>";
      document.querySelector('#status').innerHTML +=  msg;
    
      for (i = 0; i < len; i++){
         alert(results.rows.item(i).log );
      }
    
   }, null);
});
相关文章
相关标签/搜索