HTML5技术

html5 初试 Web SQL Database - 2778085001

字号+ 作者:H5之家 来源:博客园 2016-07-21 12:00 我要评论( )

不包含在html5规范中,它是一个独立的规范,它引入了一套使用 SQL 操作客户端数据库的 API。所有现代浏览器都支持此API。它使用的SQL是SQLite 。 html5 中使用Local and session storage 本地存储非常的方便,键值对方式虽说是使用方便,但对一些大量的数据

不包含在html5规范中,它是一个独立的规范,它引入了一套使用 SQL 操作客户端数据库的 API。所有现代浏览器都支持此API。它使用的SQL是SQLite 。

html5 中使用 Local and session storage 本地存储非常的方便,键值对方式虽说是使用方便,但对一些大量的数据结构处理就力有不及了,而Web SQL Database正适合这种类型的数据存储。

Web SQL Database 是异步的。

连接/创建Database: 

db = window.openDatabase("db", "1.0","aid database ",1024); //建立一个名为db的数据库连接

openDatabase有5个参数,分别是 数据库名称、版本号、描述、大小、回调函数(可省略);初次调用时创建数据库,以后就是建立连接了。字节大小可以灵活设置,最好设置为足够大。可以用(!db)测试连接,不推荐用if (db),因为连接失败的原因太多了。

查询数据:

db.transaction(function(tx) {
tx.executeSql("SELECT COUNT(*) FROM ToDo", [], function(result){}, function(tx, error){});
});

transaction.executeSql方法是操作数据库的方法,第一个参数是SQL语句,读取数据和写入数据都是在这里进行,例如:

db.transaction(function(tx) { tx.executeSql('CREATE TABLE test1 ( name int,value TEXT)');// 创建表
tx.executeSql('INSERT INTO test1 ( name , value) VALUES ( "jack" , "18" )); //插入数据 });

第二个参数是替换数组,即表示SQL可以插入动态的值,例如上面一行可以写成这样

db.transaction(function(tx) {
tx.executeSql('INSERT INTO test1 ( name , value) VALUES ( ?,? )',[n, v]);//插入数据 n,v
});

n和v都是javascript变量,插入时替换SQL语句中得? 后面的函数为,执行成功或失败的回调函数。

再看一个例子

db.transaction(
function(tx) {
tx.executeSql("SELECT * FROM ToDo", [],
function(tx, result) {
for(var i = 0; i < result.rows.length; i++) {
document.write('<b>' + result.rows.item(i)['label'] + '</b><br />');
}
}, null);
}
);

rows 为一个 SQLResultSetRowList 对象,代表数据库按顺序返回的行。如果没有返回任何行,则这个对象为空。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • HTML5 进阶系列:拖放 API 实现拖放排序 - _林鑫

    HTML5 进阶系列:拖放 API 实现拖放排序 - _林鑫

    2017-05-02 11:02

  • HTML5 进阶系列:indexedDB 数据库 - _林鑫

    HTML5 进阶系列:indexedDB 数据库 - _林鑫

    2017-04-27 14:02

  • HTML5 高级系列:web Storage - _林鑫

    HTML5 高级系列:web Storage - _林鑫

    2017-04-27 14:01

  • HTML5和CSS3 - 奔跑在起跑线佼佼者

    HTML5和CSS3 - 奔跑在起跑线佼佼者

    2017-04-20 13:00

网友点评