html 5 本地数据库(Web Sql Database)详解

来源:互联网 发布:流体动力学模拟软件 编辑:程序博客网 时间:2024/05/21 17:12

html 5 本地数据库(Web Sql Database)详解

了解HTML 5的Web SQL Database API。

下面将介绍怎样创建打开数据库(Web Sql Database),创建表,添加数据,更新数据,删除数据,删除表 。

先介绍三个核心方法

1、openDatabase:这个方法使用现有数据库或创建新数据库创建数据库对象。

2、transaction:这个方法允许我们根据情况控制事务提交或回滚。

3、executeSql:这个方法用于执行真实的SQL查询。

openDatabase

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

//<--获得数据库连接对象-->var mydb;//判断浏览器是否支持webSQL Database API if (!window.openDatabase){    mydb = null;    alert('你的浏览器不兼容');}else {    //新建数据库    mydb = window.openDatabase(              'addr_list',    //数据库名,              'v1.0',         //版本号,              '通讯录',        //数据库说明,              1000,           //数据库大小(1000字节)              function (){alert('数据库创建成功!')});//创建成功的回调函数}

openDatabase接收五个参数:
1. 数据库名字
2. 数据库版本号
3. 显示名字(数据库描述)
4. 数据库保存数据的大小(以字节为单位 )
5. 回调函数(非必须)

transaction

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

//<--执行sql语句创建表-->mydb.transaction(function(tx){    tx.executeSql(        'create table if not exists addr(name,phone,company,date)',//sql语句;        [],                                                        //sql语句的参数        function(){alert('数据库表USER创建成功')},                   //创建成功的回调函数,        function(){alert('数据库表addr创建失败')});                  //创建失败的回调函数});

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

executeSql

executeSql方法用以执行SQL语句,返回结果。

//插入数据mydb.transaction(function(t){    t.executeSql("insert into addr(name,phone,company,date) values(?,?,?,?)",//sql语句            [name,phone,company,new Date().toLocaleTimeString()],        //参数            function(){alert('插入数据成功!');},                          //成功回调            function(){alert('插入数据失败!');});                         //失败回调});//查询数据mydb.transaction(function(t){     t.executeSql('select * from addr',                          //语句             [],                                                 //没有参数时为空,但一定要写'[]'             function(t,results){                                //成功时回调                 for (i=0;i<results.rows.length;i++){            //results.rows.length获得结果集的长度                     alert(results.rows.item(i).name);           //获得名字                 }             },             function(){alert('查询失败');});                      //失败时回调 });//删除数据mydb.transaction(function(t){    t.executeSql('delete from addr where date=?',            [date],            function(){                                         //成功回调                alert('数据已删除')            },                                                  //失败时回调            function(){alert('数据删除失败')});});//更新数据mydb.transaction(function (t) {    t.executeSql(            "update addr set name = ? where date= ?",            [name, date],            function (t, results) {                alert('更新成功');            },            function (t, error) {                alert('更新失败: ' + error.message);            });});//删除数据表mydb.transaction(function (t) {    t.executeSql('drop table addr');});

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

备注:
results(结果集):是返回的结果集,其数据类型为 SQLResultSet ;
rows(行): 有两个属性,length(总行数)、item (一个行);

ExecuteSQL不支持RIGHT OUTER JOIN,FULL OUTER JOIN,INTERSECT(在两个集合中都存在的数据) 和 EXCEPT(第一个集合中存在,但是不存在于第二个集合中的数据);

以下链接包含具体代码:
http://download.csdn.net/detail/rdj_miss/9506488

同时,也可以在浏览器中按F12打开开发者工具查看;
html 5 本地数据库(Web Sql Database)详解

0 0