客户端持久化解决方案: Web SQL
客户端持久化解决方案: Web SQL
Web SQL
提供了一组使用 SQL
操作客户端数据库的 APIs, 不是 HTML5 规范的一部分,是一个独立的规范.
核心方法
openDatabase
: 打开或新建数据库,返回数据库对象。transaction
: 打开一个事务,从而可以执行提交或者回滚。executeSql
: 执行实际的 SQL 查询。
打开/创建数据库
// window.openDatabase(dbName, version, description, dbSize, [createCallback]);
// 注: 数据库创建时才会触发回调
var db = openDatabase('mydb', '1.0', 'Test DB', 2*1024*1024, function() { console.log('db created..')});
创建数据库之后,就可以通过executeSql
创建表,进而执行CRUD操作.
创建表
var db = openDatabase(dbName);
db.transaction(function(transaction) {////开启事务,在回调中执行sql
transaction.executeSql('CREATE TABLE IF NOT EXISTS user (id unique, name)');
});
插入数据
var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);
db.transaction(function (tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (id unique, log)');
tx.executeSql('INSERT INTO LOGS (id, log) VALUES (1, "菜鸟教程")');
tx.executeSql('INSERT INTO LOGS (id, log) VALUES (2, "www.runoob.com")');
});
读取数据
db.transaction(function (tx) {
tx.executeSql('SELECT * FROM LOGS', [], function (tx, results) {
var len = results.rows.length, i;
msg = "<p>查询记录条数: " + len + "</p>";
document.querySelector('#status').innerHTML += msg;
for (i = 0; i < len; i++){
alert(results.rows.item(i).log );
}
}, null);
});