物件DbConnection
DBConnection 是資料庫連線的基類,用於建立和維護一個資料庫連線工作階段。其實現了連接的基本操作,並作為衍生類別的基礎。同時支援開始事務、提交事務、回滾事務等操作。
DBConnection 的子類別包括:Odbc、MySQL、SQLite,透過實例化每個子類,我們可以很方便地存取不同種類的資料庫。
DBConnection 不能直接創建,只能透過db.open等方法創建,例如:
1
2var db = require("db");
var conn = db.open("mysql://root:123456@localhost:3306/test");
繼承關係
成員屬性
type
String, 查詢目前連線資料庫類型
1readonly String DbConnection.type;
成員函數
close
關閉目前資料庫連接
1DbConnection.close() async;
use
選擇目前資料庫連線的預設資料庫
1DbConnection.use(String dbName) async;
呼叫參數:
- dbName: String, 指定資料庫名
begin
在目前資料庫連線上啟動一個事務
1DbConnection.begin(String point = "") async;
呼叫參數:
- point: String, 指定事務的名稱,預設不指定
commit
提交目前資料庫連線上的事務
1DbConnection.commit(String point = "") async;
呼叫參數:
- point: String, 指定事務的名稱,預設不指定
rollback
回滾目前資料庫連線上的事務
1DbConnection.rollback(String point = "") async;
呼叫參數:
- point: String, 指定事務的名稱,預設不指定
trans
進入事務執行一個函數,並根據函數執行情況提交或回滾
1Boolean DbConnection.trans(Function func);
呼叫參數:
- func: Function, 以交易方式執行的函數
回傳結果:
- Boolean, 傳回交易是否提交,正常commit 時傳回true, rollback 時傳回false,如果交易出錯則拋出錯誤
func 執行有三種結果:
- 函數正常返回,包括運行結束和主動return,此時事務將自動提交
- 函數傳回false,此時交易將回滾
- 函數運行錯誤,事務自動回滾
進入事務執行一個函數,並根據函數執行情況提交或回滾
1
2Boolean DbConnection.trans(String point,
Function func);
呼叫參數:
- point: String, 指定事務的名稱
- func: Function, 以交易方式執行的函數
回傳結果:
- Boolean, 傳回交易是否提交,正常commit 時傳回true, rollback 時傳回false,如果交易出錯則拋出錯誤
func 執行有三種結果:
- 函數正常返回,包括運行結束和主動return,此時事務將自動提交
- 函數傳回false,此時交易將回滾
- 函數運行錯誤,事務自動回滾
execute
執行一個sql 指令,並回傳執行結果
1NArray DbConnection.execute(String sql) async;
呼叫參數:
- sql: String, 字串
回傳結果:
- NArray, 傳回包含結果記錄的數組,如果請求是UPDATE 或INSERT,回傳結果也會包含affected 和insertId,mssql 不支援insertId。
執行一個sql 指令,並傳回執行結果,可根據參數格式化字串
1
2NArray DbConnection.execute(String sql,
...args) async;
呼叫參數:
- sql: String, 格式化字串,可選參數用? 指定。例如:'SELECT FROM TEST WHERE [id]=?'
- args: ..., 可選參數列表
回傳結果:
- NArray, 傳回包含結果記錄的數組,如果請求是UPDATE 或INSERT,回傳結果也會包含affected 和insertId,mssql 不支援insertId。
createTable
建立資料表
1DbConnection.createTable(Object opts) async;
呼叫參數:
- opts: Object, 參數列表
dropTable
刪除資料表
1DbConnection.dropTable(Object opts) async;
呼叫參數:
- opts: Object, 參數列表
createIndex
建立資料表索引
1DbConnection.createIndex(Object opts) async;
呼叫參數:
- opts: Object, 參數列表
dropIndex
刪除資料表索引
1DbConnection.dropIndex(Object opts) async;
呼叫參數:
- opts: Object, 參數列表
insert
插入新記錄
1Number DbConnection.insert(Object opts) async;
呼叫參數:
- opts: Object, 參數列表
回傳結果:
- Number, 傳回包含插入的id,如果引擎不支援則傳回 0
find
根據指定的條件查詢數據
1NArray DbConnection.find(Object opts) async;
呼叫參數:
- opts: Object, 參數列表
回傳結果:
- NArray, 傳回包含結果記錄
count
根據指定的條件統計資料記錄數
1Integer DbConnection.count(Object opts) async;
呼叫參數:
- opts: Object, 參數列表
回傳結果:
- Integer, 傳回包含結果記錄數
update
根據指定的條件更新數據
1Integer DbConnection.update(Object opts) async;
呼叫參數:
- opts: Object, 參數列表
回傳結果:
- Integer, 傳回包含更新的記錄數
remove
根據指定的條件刪除數據
1Integer DbConnection.remove(Object opts) async;
呼叫參數:
- opts: Object, 可選參數列表
回傳結果:
- Integer, 傳回包含更新的記錄數
format
格式化一個sql 指令,並回傳格式化結果
1
2String DbConnection.format(String method,
Object opts);
呼叫參數:
- method: String, 指定請求的方法
- opts: Object, 可選參數列表
回傳結果:
- String, 傳回格式化之後的sql 指令
格式化一個sql 指令,並回傳格式化結果
1
2String DbConnection.format(String sql,
...args);
呼叫參數:
- sql: String, 格式化字串,可選參數用? 指定。例如:'SELECT FROM TEST WHERE [id]=?'
- args: ..., 可選參數列表
回傳結果:
- String, 傳回格式化之後的sql 指令
toString
傳回物件的字串表示,一般回傳"[Native Object]",物件可以根據自己的特性重新實現
1String DbConnection.toString();
回傳結果:
- String, 傳回物件的字串表示
toJSON
傳回物件的JSON 格式表示,一般傳回物件定義的可讀屬性集合
1Value DbConnection.toJSON(String key = "");
呼叫參數:
- key: String, 未使用
回傳結果:
- Value, 傳回包含可JSON 序列化的值