nodejs
基本使用
const { pool } = require('./mysql/db')
const sql = 'SELECT * FROM `students` WHERE `name` = ?'
pool.query(sql, ['小乔'], (err, rows, _fields) => {
if (err) {
console.log(err)
return
}
console.log(rows)
})
const sql2 = 'SELECT * FROM `students`'
pool.getConnection((err, conn) => {
conn.query(sql2, (err, rows) => {
console.log(rows)
})
pool.releaseConnection(conn)
})
const mysql = require('mysql2')
const pool = mysql.createPool({
host: 'localhost',
user: 'root',
password: '123456',
database: 'mktest',
charset: 'utf8',
waitForConnections: true,
connectionLimit: 10,
queueLimit: 0
})
exports.pool = pool
事务操作
const { pool } = require('./mysql/db')
pool.getConnection((err, conn) => {
if (err) {
console.log('pool.getConnection出错')
return
}
conn.beginTransaction(err => {
if (err) {
console.log('开始事务错误')
return
}
conn.query('UPDATE students SET gender=2 WHERE id=?', [4], (err, _rows) => {
if (err) {
return conn.rollback(_ => {
console.log('修改id=4性别为女回滚了')
})
}
conn.query('SELECT * FROM students where id=4', (err, rows) => {
if (err) {
return conn.rollback(_ => {
console.log('查询id=4的学生')
})
}
conn.commit(err => {
if (err) {
return conn.rollback(_ => {
console.log('提交事务失败')
})
}
console.log('success!')
console.log(rows)
})
})
})
})
})
分块查询
const { pool } = require('./mysql/db')
const sql = 'SELECT * FROM `students`'
pool.getConnection((err, conn) => {
if (err) {
console.log('pool.getConnection出错了')
return
}
let query = conn.query(sql)
query.on('error', err => {
})
.on('fields', fields => {
})
.on('result', row => {
conn.pause()
conn.resume()
console.log(row)
})
.on('end', _ => {
conn.release()
})
})
Promise用法
async function main() {
const mysql = require('mysql2/promise')
const sql = 'SELECT * FROM `students`'
const pool = await mysql.createPool({
host: 'localhost',
user: 'root',
password: '123456',
database: 'mktest',
charset: 'utf8',
waitForConnections: true,
connectionLimit: 10,
queueLimit: 0
})
const [rows, firlds] = await pool.execute(sql)
console.log(rows)
}
main()
const { pool } = require('./mysql/db')
const sql = 'SELECT * FROM `students`'
pool.promise().query(sql).then(([rows, fields]) => {
console.log(rows)
}).catch(err => {
console.log(err)
pool.end()
})