2019獨角獸企業重金招聘Python工程師標準>>>
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.");?
?
?
對數據庫操作:
db.transaction(function(transaction){//當無表存在于數據庫中時,調用handleError創建表,
??操作語句;},handleError,success);
?
當操作成功時,執行success函數,若失敗,則執行handleError,
譬如說這里的操作語句是:
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