Object 內建對象

物件DbConnection

DBConnection 是資料庫連線的基類,用於建立和維護一個資料庫連線工作階段。其實現了連接的基本操作,並作為衍生類別的基礎。同時支援開始事務、提交事務、回滾事務等操作。

DBConnection 的子類別包括:OdbcMySQLSQLite,透過實例化每個子類,我們可以很方便地存取不同種類的資料庫。

DBConnection 不能直接創建,只能透過db.open等方法創建,例如:

1 2
var db = require("db"); var conn = db.open("mysql://root:123456@localhost:3306/test");

繼承關係

成員屬性

type

String, 查詢目前連線資料庫類型

1
readonly String DbConnection.type;

成員函數

close

關閉目前資料庫連接

1
DbConnection.close() async;

use

選擇目前資料庫連線的預設資料庫

1
DbConnection.use(String dbName) async;

呼叫參數:

  • dbName: String, 指定資料庫名

begin

在目前資料庫連線上啟動一個事務

1
DbConnection.begin(String point = "") async;

呼叫參數:

  • point: String, 指定事務的名稱,預設不指定

commit

提交目前資料庫連線上的事務

1
DbConnection.commit(String point = "") async;

呼叫參數:

  • point: String, 指定事務的名稱,預設不指定

rollback

回滾目前資料庫連線上的事務

1
DbConnection.rollback(String point = "") async;

呼叫參數:

  • point: String, 指定事務的名稱,預設不指定

trans

進入事務執行一個函數,並根據函數執行情況提交或回滾

1
Boolean DbConnection.trans(Function func);

呼叫參數:

  • func: Function, 以交易方式執行的函數

回傳結果:

  • Boolean, 傳回交易是否提交,正常commit 時傳回true, rollback 時傳回false,如果交易出錯則拋出錯誤

func 執行有三種結果:

  • 函數正常返回,包括運行結束和主動return,此時事務將自動提交
  • 函數傳回false,此時交易將回滾
  • 函數運行錯誤,事務自動回滾

進入事務執行一個函數,並根據函數執行情況提交或回滾

1 2
Boolean DbConnection.trans(String point, Function func);

呼叫參數:

  • point: String, 指定事務的名稱
  • func: Function, 以交易方式執行的函數

回傳結果:

  • Boolean, 傳回交易是否提交,正常commit 時傳回true, rollback 時傳回false,如果交易出錯則拋出錯誤

func 執行有三種結果:

  • 函數正常返回,包括運行結束和主動return,此時事務將自動提交
  • 函數傳回false,此時交易將回滾
  • 函數運行錯誤,事務自動回滾

execute

執行一個sql 指令,並回傳執行結果

1
NArray DbConnection.execute(String sql) async;

呼叫參數:

  • sql: String, 字串

回傳結果:

  • NArray, 傳回包含結果記錄的數組,如果請求是UPDATE 或INSERT,回傳結果也會包含affected 和insertId,mssql 不支援insertId。

執行一個sql 指令,並傳回執行結果,可根據參數格式化字串

1 2
NArray DbConnection.execute(String sql, ...args) async;

呼叫參數:

  • sql: String, 格式化字串,可選參數用? 指定。例如:'SELECT FROM TEST WHERE [id]=?'
  • args: ..., 可選參數列表

回傳結果:

  • NArray, 傳回包含結果記錄的數組,如果請求是UPDATE 或INSERT,回傳結果也會包含affected 和insertId,mssql 不支援insertId。

createTable

建立資料表

1
DbConnection.createTable(Object opts) async;

呼叫參數:

  • opts: Object, 參數列表

dropTable

刪除資料表

1
DbConnection.dropTable(Object opts) async;

呼叫參數:

  • opts: Object, 參數列表

createIndex

建立資料表索引

1
DbConnection.createIndex(Object opts) async;

呼叫參數:

  • opts: Object, 參數列表

dropIndex

刪除資料表索引

1
DbConnection.dropIndex(Object opts) async;

呼叫參數:

  • opts: Object, 參數列表

insert

插入新記錄

1
Number DbConnection.insert(Object opts) async;

呼叫參數:

  • opts: Object, 參數列表

回傳結果:

  • Number, 傳回包含插入的id,如果引擎不支援則傳回 ​​0

find

根據指定的條件查詢數據

1
NArray DbConnection.find(Object opts) async;

呼叫參數:

  • opts: Object, 參數列表

回傳結果:

  • NArray, 傳回包含結果記錄

count

根據指定的條件統計資料記錄數

1
Integer DbConnection.count(Object opts) async;

呼叫參數:

  • opts: Object, 參數列表

回傳結果:

  • Integer, 傳回包含結果記錄數

update

根據指定的條件更新數據

1
Integer DbConnection.update(Object opts) async;

呼叫參數:

  • opts: Object, 參數列表

回傳結果:

  • Integer, 傳回包含更新的記錄數

remove

根據指定的條件刪除數據

1
Integer DbConnection.remove(Object opts) async;

呼叫參數:

  • opts: Object, 可選參數列表

回傳結果:

  • Integer, 傳回包含更新的記錄數

format

格式化一個sql 指令,並回傳格式化結果

1 2
String DbConnection.format(String method, Object opts);

呼叫參數:

  • method: String, 指定請求的方法
  • opts: Object, 可選參數列表

回傳結果:

  • String, 傳回格式化之後的sql 指令

格式化一個sql 指令,並回傳格式化結果

1 2
String DbConnection.format(String sql, ...args);

呼叫參數:

  • sql: String, 格式化字串,可選參數用? 指定。例如:'SELECT FROM TEST WHERE [id]=?'
  • args: ..., 可選參數列表

回傳結果:

  • String, 傳回格式化之後的sql 指令

toString

傳回物件的字串表示,一般回傳"[Native Object]",物件可以根據自己的特性重新實現

1
String DbConnection.toString();

回傳結果:

  • String, 傳回物件的字串表示

toJSON

傳回物件的JSON 格式表示,一般傳回物件定義的可讀屬性集合

1
Value DbConnection.toJSON(String key = "");

呼叫參數:

  • key: String, 未使用

回傳結果:

  • Value, 傳回包含可JSON 序列化的值