Web Sql 關聯式資料庫

心葉發表於2019-02-16

作者:心葉
時間: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語句就可以了。

相關文章