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