物件MySQL
MySQL 物件是用於操作MySQL 資料庫的類別,
下面是一個使用MySQL 物件的範例。
1
2
3
4
5
6
7
8
9
10
11
12
13var 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, 資料庫連線接收快取尺寸
1Integer MySQL.rxBufferSize;
txBufferSize
Integer, 資料庫連線發送快取尺寸
1Integer MySQL.txBufferSize;
type
String, 查詢目前連線資料庫類型
1readonly String MySQL.type;
成員函數
close
關閉目前資料庫連接
1MySQL.close() async;
use
選擇目前資料庫連線的預設資料庫
1MySQL.use(String dbName) async;
呼叫參數:
- dbName: String, 指定資料庫名
begin
在目前資料庫連線上啟動一個事務
1MySQL.begin(String point = "") async;
呼叫參數:
- point: String, 指定事務的名稱,預設不指定
commit
提交目前資料庫連線上的事務
1MySQL.commit(String point = "") async;
呼叫參數:
- point: String, 指定事務的名稱,預設不指定
rollback
回滾目前資料庫連線上的事務
1MySQL.rollback(String point = "") async;
呼叫參數:
- point: String, 指定事務的名稱,預設不指定
trans
進入事務執行一個函數,並根據函數執行情況提交或回滾
1Boolean MySQL.trans(Function func);
呼叫參數:
- func: Function, 以交易方式執行的函數
回傳結果:
- Boolean, 傳回交易是否提交,正常commit 時傳回true, rollback 時傳回false,如果交易出錯則拋出錯誤
func 執行有三種結果:
- 函數正常返回,包括運行結束和主動return,此時事務將自動提交
- 函數傳回false,此時交易將回滾
- 函數運行錯誤,事務自動回滾
進入事務執行一個函數,並根據函數執行情況提交或回滾
1
2Boolean MySQL.trans(String point,
Function func);
呼叫參數:
- point: String, 指定事務的名稱
- func: Function, 以交易方式執行的函數
回傳結果:
- Boolean, 傳回交易是否提交,正常commit 時傳回true, rollback 時傳回false,如果交易出錯則拋出錯誤
func 執行有三種結果:
- 函數正常返回,包括運行結束和主動return,此時事務將自動提交
- 函數傳回false,此時交易將回滾
- 函數運行錯誤,事務自動回滾
execute
執行一個sql 指令,並回傳執行結果
1NArray MySQL.execute(String sql) async;
呼叫參數:
- sql: String, 字串
回傳結果:
- NArray, 傳回包含結果記錄的數組,如果請求是UPDATE 或INSERT,回傳結果也會包含affected 和insertId,mssql 不支援insertId。
執行一個sql 指令,並傳回執行結果,可根據參數格式化字串
1
2NArray MySQL.execute(String sql,
...args) async;
呼叫參數:
- sql: String, 格式化字串,可選參數用? 指定。例如:'SELECT FROM TEST WHERE [id]=?'
- args: ..., 可選參數列表
回傳結果:
- NArray, 傳回包含結果記錄的數組,如果請求是UPDATE 或INSERT,回傳結果也會包含affected 和insertId,mssql 不支援insertId。
createTable
建立資料表
1MySQL.createTable(Object opts) async;
呼叫參數:
- opts: Object, 參數列表
dropTable
刪除資料表
1MySQL.dropTable(Object opts) async;
呼叫參數:
- opts: Object, 參數列表
createIndex
建立資料表索引
1MySQL.createIndex(Object opts) async;
呼叫參數:
- opts: Object, 參數列表
dropIndex
刪除資料表索引
1MySQL.dropIndex(Object opts) async;
呼叫參數:
- opts: Object, 參數列表
insert
插入新記錄
1Number MySQL.insert(Object opts) async;
呼叫參數:
- opts: Object, 參數列表
回傳結果:
- Number, 傳回包含插入的id,如果引擎不支援則傳回 0
find
根據指定的條件查詢數據
1NArray MySQL.find(Object opts) async;
呼叫參數:
- opts: Object, 參數列表
回傳結果:
- NArray, 傳回包含結果記錄
count
根據指定的條件統計資料記錄數
1Integer MySQL.count(Object opts) async;
呼叫參數:
- opts: Object, 參數列表
回傳結果:
- Integer, 傳回包含結果記錄數
update
根據指定的條件更新數據
1Integer MySQL.update(Object opts) async;
呼叫參數:
- opts: Object, 參數列表
回傳結果:
- Integer, 傳回包含更新的記錄數
remove
根據指定的條件刪除數據
1Integer MySQL.remove(Object opts) async;
呼叫參數:
- opts: Object, 可選參數列表
回傳結果:
- Integer, 傳回包含更新的記錄數
format
格式化一個sql 指令,並回傳格式化結果
1
2String MySQL.format(String method,
Object opts);
呼叫參數:
- method: String, 指定請求的方法
- opts: Object, 可選參數列表
回傳結果:
- String, 傳回格式化之後的sql 指令
格式化一個sql 指令,並回傳格式化結果
1
2String MySQL.format(String sql,
...args);
呼叫參數:
- sql: String, 格式化字串,可選參數用? 指定。例如:'SELECT FROM TEST WHERE [id]=?'
- args: ..., 可選參數列表
回傳結果:
- String, 傳回格式化之後的sql 指令
toString
傳回物件的字串表示,一般回傳"[Native Object]",物件可以根據自己的特性重新實現
1String MySQL.toString();
回傳結果:
- String, 傳回物件的字串表示
toJSON
傳回物件的JSON 格式表示,一般傳回物件定義的可讀屬性集合
1Value MySQL.toJSON(String key = "");
呼叫參數:
- key: String, 未使用
回傳結果:
- Value, 傳回包含可JSON 序列化的值