WebSQL這種存儲技術,相對於學過數據庫的人來講,仍是比較容易理解和上手的,主要就是它的存儲風格和咱們通常所學的SQL Server 和Oracle比較像,對於HTML5來講,固然還有其它的存儲技術,好比說LocalStorage,這幾天開發了一個真心話大冒險這個遊戲,由於數據稍微複雜了一點點,原本想用LocalStorage,不過糾結了好久,想不出來怎麼解決數據的分類等等問題,就選用了WebSQL,感受也還行,就是代碼可能就稍微複雜了點,如今就來說講WebSQL的幾個重要的操做吧:數據庫
首先就是要建立一個數據庫:函數
1 db = openDatabase("ToDo", "0.1", "A list of to do items.", 200000); 代理
以上代碼建立了一個數據庫對象 db,名稱是 Todo,版本編號爲0.1。db 還帶有描述信息和大概的大小值。用戶代理(user agent)可以使用這個描述與用戶進行交流,說明數據庫是用來作什麼的。利用代碼中提供的大小值,用戶代理能夠爲內容留出足夠的存儲。若是須要,這個大小是能夠改變的,因此沒有必要預先假設容許用戶使用多少空間。對象
爲了檢測以前建立的鏈接是否成功,你能夠檢查那個數據庫對象是否爲null:遊戲
2 if(!db) 開發
3 alert("Failed to connect to database."); it
對數據庫操做:io
db.transaction(function(transaction){//當無表存在於數據庫中時,調用handleError建立表,
操做語句;},handleError,success);table
當操做成功時,執行success函數,若失敗,則執行handleError,function
譬如說這裏的操做語句是:
strSQL = "select * from QType";
transaction.executeSql(strSQL);
當數據庫中不存在QType這個表時,就會執行handleError函數,此時便可在handleError該函數內建立該表了
建立一個表:
db.transaction(function(transaction){
strSQL="create table if not exists QType(QTypeID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,QTDescribe TEXT NOT NULL)";
transaction.executeSql(strSQL); //執行語句,建立QTYpe
},error,success);
向表中插入數據:
transaction.executeSql("INSERT INTO QContent(QTypeID,QDescribe) values(1,"你好")");
如果要插入一個變量,
transaction.executeSql("INSERT INTO QContent(QTypeID,QDescribe) values(?,?)",[變量名1,變量名2]);//問號分別對應後面的變量名
查找數據:
transaction.executeSql("select * from table where id=2");
更多的還有:更新語句:update 刪除表:drop table tablename