數據庫 webSQL使用方法

webSQL
是一個操作數據庫的對象 裏面封裝了操作數據庫的方法

是通過sql語句操作數據庫的(創建數據庫、建表、增刪改查)
Sql語句?是一個可以操作數據庫的字符串 類似正則的規則 他不會自己執行,需要各個平臺單獨操作數據庫的函數 執行 這個sql語句 才能讓sql執行

在webSQL裏面 有執行sql語句的方法 就會去執行sql裏面描述的功能

webSQL 跟sql語句 是完全獨立的兩個東西
Sql語句 只要是sqlite類型的數據庫 都可以使用 有自己獨立的語法
webSQL是前端獨有的一個API

特點:
不區分大小寫
語句結束之後 分號也是可選的

CREATE 創建
TABLE 表
INSERT 添加
UPDATE 更新
SELECT 選擇查找
DELETE 刪除

Sql建表的語句
CREATE TABLE 表的名字 (字段);
添加數據
INSERT INTO 表的名字 (字段) VALUES(值);
刪除數據
DELETE FROM 表的名字 WHERE 字段=值;
修改數據
UPDATE 表的名字 SET 字段=值;
查找數據
SELECT * FROM 表的名字;
SELECT * FROM 表的名字 WHERE 字段=值;

webSQL:有執行sql的方法
openDatabase:打開數據庫的方法
Transaction:獲取事務的方法
executeSql:執行sql語句的方法

打開數據庫
openDatabase(parms);
參數:
Name 數據庫的名字 必傳
Version 數據庫的版本號 必傳
displayName 數據庫的名字 必傳
estimatedSize 數據庫的大小 必傳
creationCallback 數據庫創建完成的回調 可選

db = openDatabase("noteDB","1.0","noteDB",1024*1024*10,function (result) {
    console.log(result);
    //只有創建數據庫成功 纔會調用這個回調
    db = result;
});

通過事務對象 操作sql語句
通過數據庫的對象 調用transaction函數會得到一個事務對象
可以通過事務對象 執行sql語句的函數

//callback,errorCallback,successCallback
db.transaction(function (ts) {
    console.log(ts);
    //通過得到的事務對象 調用執行sql的方法
    ts.executeSql("sql語句");
});

執行SQL語句的函數
executeSql()
參數:
sqlStatement:sql語句 必傳
Arguments 實參的數組(sql的值) 可選
Callback 執行完成時候的回調 可選
errorCallback 出現錯誤時候的回調 可選

db.transaction(function (ts) {
    console.log(ts);
    //通過得到的事務對象 調用執行sql的方法
    //sqlStatement,arguments,callback,errorCallback
    ts.executeSql("CREATE TABLE user (id,username,age);");
});

db.transaction(function (ts) {
    console.log(ts);
    //通過得到的事務對象 調用執行sql的方法
    //sqlStatement,arguments,callback,errorCallback
    ts.executeSql(sql,args,function (result) {
        console.log(result);
    },function (error) {
        console.log(error);
    });
});

//添加
oprationSQL("INSERT INTO user (id,username,age) VALUES (6,'小ming',23);");

//刪除
oprationSQL("DELETE FROM user WHERE id=0",[],function () {
    searchAll();
});

//修改
oprationSQL("UPDATE user SET username='"+username+"' WHERE username='奧特曼';",[],function () {
    searchAll();
});

//查詢
oprationSQL("SELECT * FROM user;",[],function (result) {
    var content = "";
    for (var i=0;i<result.rows.length;i++){
        content+="<p>"+result.rows[i].username+"</p>"
    }
    document.body.innerHTML = content;
});
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章