html5本地存储之数据库

对于简单的数据,使用sessionStorage和localStorage
能够很好地完成存取,但是对于处理复杂的关系型数据,
它就力不从心了。这也是 HTML 5 的“Web SQL
Database”API 接口的应用所在。我把它理解成一个
Html5环境下可以用Js执行CRUD的Web数据库
三个核心方法
openDatabase:这个方法使用现有数据库或创建新数
据库创建数据库对象。
transaction:这个方法允许我们根据情况控制事务提
交或回滚。
executeSql:这个方法用于执行真实的SQL查询
表“stu”创建成功,数据插入成功



数据删除成功,表“stu”现在为空表

表“stu”删除成功,student数据库里没有数据表

<!doctype html>
<html>
     <head>
     </head>
     <body>
     <script>
     window.οnlοad=function  () {
       var one=document.getElementById("one");
       if(window.openDatabase){          
// 参数:A.数据库名称。B.版本号 目前为1.0 C. 对数据库的描述。 D. 设置数据的大小。 E. 回调函数(可省略)
         var dataBase = openDatabase("student", "1.0", "学生表", 1024 * 1024, function () { });
          dataBase.transaction(function  (fx) {
          //创建一个表
          fx.executeSql(
          "create table if not exists stu (id REAL UNIQUE, name TEXT)",
          [],
          function  () {
            alert("表创建成功");
          },
          function  () {
            alert("创建表失败");
          }
          );
executeSql函数有四个参数,其意义分别是:
1 )表示查询的字符串,使用的SQL语言是SQLite 3.6.19
2)插入到查询中问号所在处的字符串数据。
3)成功时执行的回调函数。返回两个参数:tx和执行的结果。
4)一个失败时执行的回调函数。返回两个参数:tx和失败的错误信
息。
          //插入数据
        fx.executeSql(
          "insert into stu (id ,name) values(?,?)",
          [1,"张三"],
          function  () {
            alert("数据插入成功");
          },
          function  () {
            alert("数据插入失败");
          }
          );
         
          //更新数据
          fx.executeSql(
          "update stu set name=? where id=?",
          ["李四",1],
          function  () {
            alert("数据更新成功");
          },
          function  () {
            alert("数据更新失败");
          }
          );

          //查询数据
          fx.executeSql(
          "select * from stu",
          [],
          function  (fx,result) {
            for (var i=0; i<result.rows.length; i++) {
              one.innerHTML+=result.rows.item (i)["name"];
            }
            alert("数据查询成功")
          },
          function  () {
            alert("数据查询失败");
          }
          );
    参数说明:
result是查询到的结果集, 其中最重要的属性—SQLResultSetRowList类型的 rows 是数据集的
rows 有两个属性:lengthitem length代表总条数,用item(num),可访问
到具体的行。
          //删除数据
          fx.executeSql(
          "delete from stu where id=?",
          [1],
          function  () {
             one.innerHTML="";
             alert("数据删除成功");
            },
          function  () {
            alert("删除失败");
          }
          );
          //删除表
      fx.executeSql(
          "drop table stu",
          [],
          function  () {
             alert("表删除成功");
            },
          function  () {
            alert("表删除失败");
          }
          );
          });

       }
            }
     </script>
     <div id="one">
     </div>
     </body>
</html>
结束语
本文介绍了 HTML5 的 Web SQL Database 特点,对其 API 进行介绍。需要注意的是,如果不是绝对需要,不要使用 Web SQL Database,因为它会让我们的代码更加复杂(匿名内部类的内部函数,回调函数等等)。对大多数情况下,本地存储或会话存储就能够完成相应的任务,尤其是你能够保持对象状态持久化的情况。通过这些 HTML5 Web SQL Database API 接口,可以获得更多功能,相信以后会出现一些非常优秀的、建立在这些 API 之上的应用程序。






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值