Web SQL API
2012-06-26 11:29 BlackBird 阅读(3276) 评论(0) 编辑 收藏 举报简介
Web SQL数据库API实际上未包含在HTML 5规范之中,它是一个独立的规范,它引入了一套使用SQL操作客户端数据库的API。这些 SQL 语句可以直接在 js中编写运行,并且带有基本的数据库事务性的支持。
兼容浏览器
chrome 17+ Safari5+ opera11.6+ iOS Safari3.2+ Opera Mobile11.0+ Android Browser2.1+
接口
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, "foobar")'); tx.executeSql('INSERT INTO LOGS (id, log) VALUES (2, "logmsg")'); });
openDatabase 创建/打开数据库,返回数据库的引用
db.transaction 执行数据库事务
tx.executeSql 在事务中执行sql语句
示例
function initDB(){ var myDB = null; try { if (!window.openDatabase) { // 当前浏览器没有数据库支持 alert('db not supported'); } else { var shortName = 'testdb'; var version = '1.0'; var displayName = 'test offline database'; var maxSize = 65536; // 字节 myDB = openDatabase(shortName, version, displayName, maxSize); } } catch(e) { // 这里开始异常处理 . if (e == INVALID_STATE_ERR) { // 数据库版本异常 . alert("Invalid database version."); } else { alert("Unknown error "+e+"."); } } // 返回创建好的数据库实例 return myDB; }
function createTables(db){ db.transaction( function (transaction) { transaction.executeSql('CREATE TABLE IF NOT EXISTS User(name TEXT, age INTEGER);', [], function(result){}, function(tx,error){}); } ); }
db.transaction( function (transaction) { transaction.executeSql('INSERT INTO User values(?,?)',[“Mark”, 60], function(result){}, function(tx,error){}); })
db.transaction( function (transaction) { transaction.executeSql('SELECT * FROM User WHERE name=?', [name], function(result){}, function(tx,error){}); })
db.transaction( function (transaction) { transaction.executeSql('DELETE FROM User where name=?',[name], function(result){}, function(tx,error){}); });