阿伦学习html5 之Web SQL Database

不知道什么情况, W3C不再维护web SQL Database规范,但是大多浏览器都支持了!

Web SQL Database规范页面有着这样的声明

阿伦学习html5 之Web SQL Database

Web SQL Database 规范中定义的三个核心方法:

  1. openDatabase:这个方法使用现有数据库或新建数据库来创建数据库对象
  2. transaction:这个方法允许我们根据情况控制事务提交或回滚
  3. executeSql:这个方法用于执行SQL 查询

openDatabase:

我们可以使用这样简单的一条语句,创建或打开一个本地的数据库对象

var db = openDatabase(‘testDB‘, ‘1.0‘, ‘Test DB‘, 2 * 1024 * 1024);

openDatabase接收五个参数:

  1. 数据库名字
  2. 数据库版本号
  3. 显示名字
  4. 数据库保存数据的大小(以字节为单位 )
  5. 回调函数(非必须)

如果提供了回调函数,回调函数用以调用 changeVersion() 函数,不管给定什么样的版本号,回调函数将把数据库的版本号设置为空。如果没有提供回调函数,则以给定的版本号创建数据库。

transaction

transaction方法用以处理事务,当一条语句执行失败的时候,整个事务回滚。方法有三个参数

  1. 包含事务内容的一个方法
  2. 执行成功回调函数(可选)
  3. 执行失败回调函数(可选)

executeSql

executeSql方法用以执行SQL语句,返回结果,方法有四个参数

  1. 查询字符串
  2. 用以替换查询字符串中问号的参数
  3. 执行成功回调函数(可选)
  4. 执行失败回调函数(可选)

 

 1 <!DOCTYPE HTML>
 2 <html>
 3 <head>
 4     <title>Web SQL Database</title>
 5 </head>
 6 <body>
 7     <script type="text/javascript">
 8         var db = openDatabase(testDB, 1.0, Test DB, 2 * 1024 * 1024);
 9         var msg;
10         db.transaction(function (context) {
11            context.executeSql(CREATE TABLE IF NOT EXISTS testTable (id unique, name));
12            context.executeSql(INSERT INTO testTable (id, name) VALUES (0, "Byron"));
13            context.executeSql(INSERT INTO testTable (id, name) VALUES (1, "Casper"));
14            context.executeSql(INSERT INTO testTable (id, name) VALUES (2, "Frank"));
15          });
16 
17         db.transaction(function (context) {
18            context.executeSql(SELECT * FROM testTable, [], function (context, results) {
19             var len = results.rows.length, i;
20             console.log(Got +len+ rows.);
21                for (i = 0; i < len; i++){
22               console.log(id: +results.rows.item(i).id);
23               console.log(name: +results.rows.item(i).name);
24             }
25          });
26         });
27     </script>
28 </body>
29 </html>

 

阿伦学习html5 之Web SQL Database

上一篇:SQL的单个表的大小限制最大可以是多大?


下一篇:SQL SERVER 面试题