WebSQL存儲

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

相關文章
相關標籤/搜索