Skip to content

database 数据库

使用前, 需要先使用 createPoolcreate 创建实例, 才能使用下列函数

在下面中, 会使用 db 代表使用 createPool 后的对象

createPool(config) create(config)

创建数据库操作对象

参数

参数类型说明
configobject / string传入 object 或 json 文件的路径

返回值

object 数据库操作对象

代码

demo
javascript
// 文件路径
module.exports = require('database').createPool('@/objects/mxd-database.json')
// 对象
module.exports = require('database').createPool({
    url: '',
    username: '',
    password: ''
})

update(sql[, ...args])

执行 新增 删除 修改 语句, 使用 ? 做参数占位符, 预编译

参数

参数类型说明
sqlstringsql
args...占位符对应参数

返回值

number 受影响的行数

代码

demo
javascript
const rows = db.update('UPDATE accounts SET pawssword = ? WHERE username = ?', 'ppwwdd', 'admin')

insert(sql[, ...args]) 这是一个 预览 功能

执行 新增 语句, 使用 ? 做参数占位符, 预编译

他与 update 不同的是 返回值, insert 返回的是自动生成的 key

参数

参数类型说明
sqlstringsql
args...占位符对应参数

返回值

key 自动生成的 key

代码

demo
javascript
const rows = db.insert('INSERT INTO user(name) , '小兔子')

query(sql[, ...args])

执行 查询 语句, 使用 ? 做参数占位符, 预编译

参数

参数类型说明
sqlstringsql
args...占位符对应参数

返回值

array 结果集

代码

demo
javascript
const list = db.query('SELECT * FROM accounts WHERE loggedin != 0')

getConnection([autoCommit])

获取一个新连接, 一般需要手动式事务时使用

参数

参数类型说明
autoCommitboolean设置自动提交

返回值

object

代码

demo
javascript
const conn = db.getConnection()
try {
    conn.setAutoCommit(false)
    // 此处省略一万行代码 ...
    const rows = db.update('UPDATE accounts SET pawssword = ? WHERE username = ?', 'ppwwdd', 'admin')
    conn.commit()
} catch (e) {
    try {
        if (conn) {
            conn.rollback()
        }
    } catch (e) {
        console.log(e)
    }
    console.log(e)
} finally {
    try {
        if (conn) {
            conn.close();
        }
    } catch (e) {
        console.log(e)
    }
}

setAutoCommit(enable)

开启或关闭事务的自动提交, 一般配合 getConnection 做手动式事务

参数

参数类型说明
enableboolean开启或关闭

返回值

代码

demo
javascript
const conn = db.getConnection()
conn.setAutoCommit(false)

safeClose()

关闭连接, 不会抛出异常

参数

返回值

代码

demo
javascript
const conn = db.getConnection()
conn.safeClose()

execute(function)

关闭自动提交执行 sql

参数

返回值

代码

demo
javascript
db.execute(conn => {
    conn.update()
    conn.update()
    conn.update()
})