剛聽說有這種東西的時候, 小編也覺得是個好事, 有些Web功能讓客戶耑本地去弄就算了,省得透過網絡交互來交互去,太麻煩。
利用openDatabase創建數據庫
我們可以利用openDatabase方法創建數據庫。openDatabase方法傳遞五個參數,分別是:數據庫名、數據庫版本號(可省略)、對數據庫的描述、設置分配的數據庫的大小、回調函數。
如果我們要創建一個本地數據庫,可以執行如下代碼:
var myWebDatabase = openDatabase(“user”, ”1.0”, “user info”, 1024*1024, function(){});
這樣就創建了一個用戶信息表。之後可以對創建的本地數據庫是否成功進行驗証:
if(!dataBase){ alert("The database has been created successfully!"); }else{ alert("The database has not been successfully created.") } if(!dataBase){ alert("The database has been created successfully!"); }else{ alert("The database has not been successfully created.") }
利用executeSql方法執行sql語句
使用executeSql方法,我們可以直接執行正常的sql語句,如下:
context.executeSql('INSERT INTO testTable(id,name) VALUES (1,"Martin")');
當然,這裡衹體現了executeSql的功能,並沒有確切說明executeSql方法怎麽用,用在哪裡。要想使用該方法就必須介紹transaction。
利用transaction處理事務
該方法用來處理事務,可以傳遞三個參數:包含事務内容的一個方法、執行成功的回調函數、執行失敗的回調函數(後兩者可以省略)。
結合transaction和executeSql,我們就可在我們之前創建的數據庫中添加創建數據表並添加數據了,代碼如下:
myWebDatabase.transaction( function (context) { context.executeSql('CREATE TABLE IF NOT EXISTS testTable (id unique, name)'); context.executeSql('INSERT INTO testTable (id, name) VALUES (0, "Byron")'); context.executeSql('INSERT INTO testTable (id, name) VALUES (1, "Casper")'); context.executeSql('INSERT INTO testTable (id, name) VALUES (2, "Frank")'); } );
sql語句的含義不多解釋,但從這裡已經可以很明白的看出如何在本地數據庫中,想在一般數據庫中一樣創建數據庫數據表並添加數據了。