日期:2014-05-16  浏览次数:20530 次

HTML5 本地数据库总结
HTML5 本地数据库总结
WEB SQL Database即:本地的SQLite数据库,Html5将它本地话,使用的方式和方法和SQLite基本相同

一.WEB SQL Database用途
1.对于需要经常使用检的数据,将其从后台获取后,保存到web sql 数据库中,这样在下次使用的时候,就不需要到后台去检索,直接从web sql 数据库中去获取,从而减少对服务器的请求次数,优化前端的操作效率。
2.可以通过web sql 数据库来实现离线操作,在离线的状态下,我们依然能够查看先前查看过的数据,因为它们已经保存在websql数据库中,同事我们还能进行一些简单的其他操作,比如:写一封邮件,保存起来,等下次在线时接着编辑,或者写一篇日志,等到下次在线时接着编辑,从而使我们实现一些简单的离线办公。

二.WEB SQL Database的支持情况

Chrome 3.0及以上版本 支持
FireFox 暂不支持
IE 暂不支持
Opera 10.5及以上版本 支持
Safari 3.2及以上版本支持 支持

通过下面方法可以来判断浏览器是否支持
if (!window.openDatabase) { 
            alert('Databases are not supported in this browser.'); 
    }


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

四.三大核心方法的使用

1. openDatabase():创建数据库
var db= openDatabase(数据库名,版本,数据库描述,数据库大小);
eg: var db= openDatabase(“myTestDB”,”1.0”,”我的测试数据库”,10*1024,[回调函数(可以没有)]);

注:该方法返回创建后的数据库的访问对象,如果该数据库不存在,则创建该数据库。

2. transaction():访问数据库,要借用transaction()方法,执行事务处理,防止在对数据库进行访问及执行有关操作的时候受到外界打扰。
(1)创建一个数据表test

db.transaction(function(tx) {
tx.executeSql("CREATE TABLE IF NOT EXISTS test (id int UNIQUE, title TEXT, content TEXT)");
});

(2)执行新增
db.transaction(function(tx){ 
          tx.executeSql("create table test (id , title)"); 
          tx.executeSql("insert into test  values(1,'ali1')"); 
          tx.executeSql("insert into test  values(2,'ali2',’哈哈哈哈’)"); 
         alert(“成功插入两条数据”);                 
      }); 

(3)执行查询

db.transaction(function(tx){ 
      tx.executeSql("select * from test",[],function(tx,result){ 
for(var i=0;i<result.rows.length;i++){
var testObj=result.rows.item(i);
alert(testObj.id+”------”+ testObj.title);
}
        }); 
      });