websql基本使用

260 阅读1分钟

Web SQL 数据库 API 并不是 HTML5 规范的一部分,但是它是一个独立的规范,引入了一组使用 SQL 操作客户端数据库的 APIs。

1,创建数据库以及表

openDatabase对应5个参数:

  1. 数据库名称
  2. 数据库版本
  3. 数据库介绍
  4. 数据库大小
  5. 数据库回调函数
var db = openDatabase(
          'myDatabase', 
          '1.0', 
          'My Database introduce', 
          2 * 1024 * 1024,
          function(){
           conosle.log("创建数据库成功")
         });

2,创建表

db.transaction(function(tx) {
  const sql = 'CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, 
  name TEXT, email TEXT)'
  tx.executeSql(sql);
});

3,添加数据 事务提交函数transaction有三个参数:

  1. 事务函数
  2. 事务提交成功回调函数
  3. 事务提交失败回调函数

sql执行函数executeSql有四个参数:

  1. sql语句
  2. 默认参数
  3. sql执行成功回调函数
  4. sql执行失败回调函数
db.transaction(function(tx) {
  const sql = "INSERT INTO users (name, email) VALUES (?, ?)"
  tx.executeSql(sql, 
              ['John Doe','john@example.com'],
              function(){console.log("sql执行成功")},
              function(){console.log("sql执行失败")}
              )
  },
  function(){
     console.log("事务提交成功")
 },function(){
  console.log("事务提交失败")

});

4,查看数据

db.transaction(function(tx) {
 tx.executeSql('SELECT * FROM users', [], function(tx, result) {
 var rows = result.rows;
 console.log("查看结果",rows)
  for (var i = 0; i < rows.length; i++) {
    var user = rows.item(i);
    console.log(user.name, user.email);
  }
});
});

5,修改数据

 db.transaction(function(tx) {
        tx.executeSql('UPDATE users SET name="new Name",email="newEmail" WHERE id=2');
        // 扩展:dbtest.executeSql('UPDATE CHART SET log='新值' WHERE id=?', [id]),里面的SQL语句支持动态传入id值进行修改数据
        });

6,删除数据

db.transaction(function (tx) {
    tx.executeSql('DELETE FROM USERS  WHERE id=?', [2])
})