標籤:style blog http color io 使用 java ar for
不知道什麼情況, W3C不再維護web SQL Database規範,但是大多瀏覽器都支援了!
Web SQL Database規範頁面有著這樣的聲明
Web SQL Database 規範中定義的三個核心方法:
- openDatabase:這個方法使用現有資料庫或建立資料庫來建立資料庫物件
- transaction:這個方法允許我們根據情況控制事務提交或復原
- executeSql:這個方法用於執行SQL 查詢
openDatabase:
我們可以使用這樣簡單的一條語句,建立或開啟一個本地的資料庫物件
var db = openDatabase(‘testDB‘, ‘1.0‘, ‘Test DB‘, 2 * 1024 * 1024);
openDatabase接收五個參數:
- 資料庫名字
- 資料庫版本號碼
- 顯示名字
- 資料庫儲存資料的大小(以位元組為單位 )
- 回呼函數(非必須)
如果提供了回呼函數,回呼函數用以調用 changeVersion() 函數,不管給定什麼樣的版本號碼,回呼函數將把資料庫的版本號碼設定為空白。如果沒有提供回呼函數,則以給定的版本號碼建立資料庫。
transaction
transaction方法用以處理事務,當一條語句執行失敗的時候,整個交易回復。方法有三個參數
- 包含事務內容的一個方法
- 執行成功回呼函數(可選)
- 執行失敗回呼函數(可選)
executeSql
executeSql方法用以執行SQL語句,返回結果,方法有四個參數
- 查詢字串
- 用以替換查詢字串中問號的參數
- 執行成功回呼函數(可選)
- 執行失敗回呼函數(可選)
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <title>Web SQL Database</title> 5 </head> 6 <body> 7 <script type="text/javascript"> 8 var db = openDatabase(‘testDB‘, ‘1.0‘, ‘Test DB‘, 2 * 1024 * 1024); 9 var msg;10 db.transaction(function (context) {11 context.executeSql(‘CREATE TABLE IF NOT EXISTS testTable (id unique, name)‘);12 context.executeSql(‘INSERT INTO testTable (id, name) VALUES (0, "Byron")‘);13 context.executeSql(‘INSERT INTO testTable (id, name) VALUES (1, "Casper")‘);14 context.executeSql(‘INSERT INTO testTable (id, name) VALUES (2, "Frank")‘);15 });16 17 db.transaction(function (context) {18 context.executeSql(‘SELECT * FROM testTable‘, [], function (context, results) {19 var len = results.rows.length, i;20 console.log(‘Got ‘+len+‘ rows.‘);21 for (i = 0; i < len; i++){22 console.log(‘id: ‘+results.rows.item(i).id);23 console.log(‘name: ‘+results.rows.item(i).name);24 }25 });26 });27 </script>28 </body>29 </html>
阿倫學習html5 之Web SQL Database