通過一個例子說明 Web SQL Database 的基本用法。它首先調用 openDatabase 創(chuàng)建了名為“fooDB”的數據庫。然后使用 transaction 執(zhí)行兩條 SQL 語句。第一條 SQL 語句創(chuàng)建了名為“foo”的表,第二條 SQL 語句向表中插入一條記錄
1、在創(chuàng)建或打開數據庫以后,就可以使用事務 API transaction。每一個事務作為操作數據庫的原子操作,不會被打斷,從而避免了數據沖突。transaction 的定義是:
代碼如下:
void transaction(querysql, errorCallback, successCallback);
querysql:事務回調函數,其中可以執(zhí)行 SQL 語句。(必選)
errorCallback:出錯回調函數。(可選)
successCallback:執(zhí)行成功回調函數。(可選)
2、在回調函數querysql中,可以執(zhí)行SQL語句,對應的API函數為executeSQL,executeSQL 的定義是:
代碼如下:
void executeSql(sqlStatement, arguments, callback, errorCallback);
sqlStatement:SQL 語句。(必選)
arguments:SQL 語句需要的參數,是一個按照sql語句中的?先后順序排列的一維數組。(可選)
callback:回調函數。(可選)
errorCallback:出錯回調函數。(可選)
Web SQL Database 示例
下面通過一個例子說明 Web SQL Database 的基本用法。它首先調用 openDatabase 創(chuàng)建了名為“fooDB”的數據庫。然后使用 transaction 執(zhí)行兩條 SQL 語句。第一條 SQL 語句創(chuàng)建了名為“foo”的表,第二條 SQL 語句向表中插入一條記錄。示例代碼:
代碼如下:
var db = openDatabase('fooDB', '1.0', 'fooDB', 2 * 1024);
db.transaction(function (tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS foo (id unique, text)');
tx.executeSql('INSERT INTO foo (id, text) VALUES (1, "foobar")');
});