Appearance
database 数据库
使用前, 需要先使用 createPool
或 create
创建实例, 才能使用下列函数
在下面中, 会使用 db
代表使用 createPool
后的对象
createPool(config) create(config)
创建数据库操作对象
参数
参数 | 类型 | 说明 |
---|---|---|
config | object / 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])
执行 新增
删除
修改
语句, 使用 ?
做参数占位符, 预编译
参数
参数 | 类型 | 说明 |
---|---|---|
sql | string | sql |
args | ... | 占位符对应参数 |
返回值
number
受影响的行数
代码
demo
javascript
const rows = db.update('UPDATE accounts SET pawssword = ? WHERE username = ?', 'ppwwdd', 'admin')
insert(sql[, ...args]) 这是一个 预览
功能
执行 新增
语句, 使用 ?
做参数占位符, 预编译
他与 update
不同的是 返回值
, insert
返回的是自动生成的 key
参数
参数 | 类型 | 说明 |
---|---|---|
sql | string | sql |
args | ... | 占位符对应参数 |
返回值
key
自动生成的 key
代码
demo
javascript
const rows = db.insert('INSERT INTO user(name) , '小兔子')
query(sql[, ...args])
执行 查询
语句, 使用 ?
做参数占位符, 预编译
参数
参数 | 类型 | 说明 |
---|---|---|
sql | string | sql |
args | ... | 占位符对应参数 |
返回值
array
结果集
代码
demo
javascript
const list = db.query('SELECT * FROM accounts WHERE loggedin != 0')
getConnection([autoCommit])
获取一个新连接, 一般需要手动式事务时使用
参数
参数 | 类型 | 说明 |
---|---|---|
autoCommit | boolean | 设置自动提交 |
返回值
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
做手动式事务
参数
参数 | 类型 | 说明 |
---|---|---|
enable | boolean | 开启或关闭 |
返回值
无
代码
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()
})