采用的是Express框架,因此需安装mysql依赖
npm install mysql --save
连接数据库
const mysql=require('mysql')
const db=mysql.createConnection({
host:'127.0.0.1',
user:'root',
password:'root',
database:'test'
})
db.connect((err)=>{
if(err){
console.log(err)
}else{
console.log('connect success')
}
})
连接池基本的思想是在系统初始化的时候,将数据库连接作为对象存储在内存中,当用户需要访问数据库时,并非建立一个新的连接,而是从连接池中取出一个已建立的空闲连接对象。使用完毕后,用户也并非将连接关闭,而是将连接放回连接池中,以供下一个请求访问使用。而连接的建立、断开都由连接池自身来管理。同时,还可以通过设置连接池的参数来控制连接池中的初始连接数、连接的上下限数以及每个连接的最大使用次数、最大空闲时间等等。也可以通过其自身的管理机制来监视数据库连接的数量、使用情况等。
增删改查操作
插入数据
router.get('/add',(req,res,next)=>{
pool.getConnection((err,connection)=>{
let sql = 'INSERT INTO tableName(key1,key2,key3,key4) VALUES (?,?,?,?)'
connection.query(sql,[1,2,3,4],(err,result)=>{
if(err){
console.log(err)
res.json({
code:-1,
message:err
})
}else{
console.log(result)
res.json({
code:200,
message:result
})
}
})
})
})
查询数据
router.get('/select',(req,res,next)=>{
pool.getConnection((err,connection)=>{
let sql='SELECT * FROM tableName WHERE param=?'
let sql2='SELECT * FROM tableName'
connection.query(sql,paramValue,(err,result)=>{
if(err){
console.log(err)
res.json({
code:-1,
message:err
})
}else{
console.log(result)
res.json({
code:200,
message:result
})
}
})
})
})
更新数据
router.get('/update',(req,res,next)=>{
pool.getConnection((err,connection)=>{
let sql='UPDATE tableName set key1=?,key2=?,key3=?,key4=? WHERE condition=?'
connection.query(sql,[1,2,3,4,conditionValue],(err,result)=>{
if(err){
console.log(err)
res.json({
code:-1,
message:err
})
}else{
console.log(result)
res.json({
code:200,
message:result
})
}
})
})
})
删除数据
router.get('/delete',(req,res,next)=>{
pool.getConnection((err,connection)=>{
let sql='DELETE FROM tableName WHERE condition=?'
connection.query(sql,conditionValue,(err,result)=>{
if(err){
console.log(err)
res.json({
code:-1,
message:err
})
}else{
console.log(result)
res.json({
code:200,
message:result
})
}
})
})
})