作者:心葉
時間:2018-04-30 15:44
前面說的IndexDB是索引型資料庫,相對而言,不是真正的資料庫,此處介紹的是關係型資料庫,使用的方言是SQLlite。
溫馨提示:目前很多瀏覽器都支援,不過這卻是一個規範上被廢棄的功能。
這裡主要介紹的是下面三個方法:
1.openDatabase:這個方法使用現有資料庫或新建資料庫來建立資料庫物件;
2.transaction:這個方法允許我們根據情況控制事務提交或回滾;
3.executeSql:這個方法用於執行SQL查詢。
第一步:連線資料庫。
var dataBase = openDatabase("hobby", "1.0", "個人業餘愛好儲存資料庫", 1024 * 1024,
function() {
console.log(`資料庫建立成功`);
}
);
1.第一個引數代表資料庫名稱;
2.第二個引數代表版本號,目前為1.0;
3.第三個引數代表對資料庫的描述;
4.第四個引數是用來設定資料的大小;
5.第五個引數是回撥函式(可省略)。
openDatabase方法開啟一個已經存在的資料庫,如果資料庫不存在,它還可以建立資料庫
第二步:事務。
transaction方法用以處理事務,當一條語句執行失敗的時候,整個事務回滾,方法包含三個引數:
1.包含事務內容的一個方法;
2.成功回撥函式(可選);
3.失敗回撥函式(可選)。
dataBase.transaction(function(context){
context.executeSql(`sql語句一`);
context.executeSql(`sql語句二`);
context.executeSql(`sql語句三`);
},function(){
console.log(`執行成功`);
},function(){
console.log(`執行失敗`);
});
上面一共執行了三條sql語句,其中任何一條sql執行如果遇到錯誤,整個事務都會回滾。
第三步:執行SQL語句。
從上面的事務例子程式碼應該已經看出來,是在事務裡面用executeSql方法來執行sql語句,其中有四個引數:
1.字串型別的sql語句;
2.用以替換查詢字串中問號的引數,是一個陣列;
3.執行成功回撥函式(可選),返回兩個引數:context和執行的結果;
4.執行失敗回撥函式(可選),context和失敗的錯誤資訊。
使用的SQL語言是SQLite,如果要建立表,執行對資料的增刪改查,使用對應的sql語句就可以了。