Object 內建對象

物件MySQL

MySQL 物件是用於操作MySQL 資料庫的類別,

下面是一個使用MySQL 物件的範例。

1 2 3 4 5 6 7 8 9 10 11 12 13
var db = require('db'); var conn = db.openMySQL('mysql://root:password@localhost/test'); // call execute method to insert data var res = conn.execute("insert into user(username, password) values ('testuser', '123456')"); console.log(res); // call execute method to query data res = conn.execute("select * from user where username = 'testuser'"); console.log(res); conn.close();

以上範例中,首先我們利用db.openMySQL方法建立一個MySQL 的連接物件並指定連接資訊。然後我們使用execute 方法在我們事先準備好的user 資料表中新增一個新的用戶,之後我們再呼叫execute 方法來查詢剛剛建立的用戶記錄。最終我們呼叫close 方法關閉連結對象,並完成了我們的MySQL 操作。

繼承關係

成員屬性

rxBufferSize

Integer, 資料庫連線接收快取尺寸

1
Integer MySQL.rxBufferSize;

txBufferSize

Integer, 資料庫連線發送快取尺寸

1
Integer MySQL.txBufferSize;

type

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

1
readonly String MySQL.type;

成員函數

close

關閉目前資料庫連接

1
MySQL.close() async;

use

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

1
MySQL.use(String dbName) async;

呼叫參數:

  • dbName: String, 指定資料庫名

begin

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

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

呼叫參數:

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

commit

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

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

呼叫參數:

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

rollback

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

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

呼叫參數:

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

trans

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

1
Boolean MySQL.trans(Function func);

呼叫參數:

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

回傳結果:

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

func 執行有三種結果:

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

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

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

呼叫參數:

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

回傳結果:

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

func 執行有三種結果:

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

execute

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

1
NArray MySQL.execute(String sql) async;

呼叫參數:

  • sql: String, 字串

回傳結果:

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

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

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

呼叫參數:

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

回傳結果:

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

createTable

建立資料表

1
MySQL.createTable(Object opts) async;

呼叫參數:

  • opts: Object, 參數列表

dropTable

刪除資料表

1
MySQL.dropTable(Object opts) async;

呼叫參數:

  • opts: Object, 參數列表

createIndex

建立資料表索引

1
MySQL.createIndex(Object opts) async;

呼叫參數:

  • opts: Object, 參數列表

dropIndex

刪除資料表索引

1
MySQL.dropIndex(Object opts) async;

呼叫參數:

  • opts: Object, 參數列表

insert

插入新記錄

1
Number MySQL.insert(Object opts) async;

呼叫參數:

  • opts: Object, 參數列表

回傳結果:

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

find

根據指定的條件查詢數據

1
NArray MySQL.find(Object opts) async;

呼叫參數:

  • opts: Object, 參數列表

回傳結果:

  • NArray, 傳回包含結果記錄

count

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

1
Integer MySQL.count(Object opts) async;

呼叫參數:

  • opts: Object, 參數列表

回傳結果:

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

update

根據指定的條件更新數據

1
Integer MySQL.update(Object opts) async;

呼叫參數:

  • opts: Object, 參數列表

回傳結果:

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

remove

根據指定的條件刪除數據

1
Integer MySQL.remove(Object opts) async;

呼叫參數:

  • opts: Object, 可選參數列表

回傳結果:

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

format

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

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

呼叫參數:

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

回傳結果:

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

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

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

呼叫參數:

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

回傳結果:

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

toString

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

1
String MySQL.toString();

回傳結果:

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

toJSON

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

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

呼叫參數:

  • key: String, 未使用

回傳結果:

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