Skip to content

十三、在Express中操作Mysql

1、在项目中操作数据库的步骤

  • 安装操作MySQL数据库的第三方模块
  • 通过mysql模块连接到MySQL数据库
  • 通过mysql模块执行SQL语句

2、使用mysql模块

1、安装

bash
npm install mysql

2、配置MySQL模块

js
//1、导入mysql模块
const mysql=require('mysql');

//2、建立于mysql数据库的连接
const db=mysq;.createPool({
	host:'127.0.0.1',	//数据量的IP地址
	user:"root,			//登录数据库的账
	password:"123456",	//登录数据库的密码
	database:'myDataBase'//指定要操作哪一个数据库
})

3、测试mysql模块是否正常工作

js
db.query('select 1',(err,results)=>{
	if(err) return console.log(err.message)
	console.log(results)
})

4、查询数据

js
const mysql=require('mysql');

const db=mysql.createPool({
    host:"127.0.0.1",
    user:"root",
    password:"12345678",
    database:"db1"
})

let querySql="select * from user"

db.query(querySql,(err,results)=>{
    if(err) return console.log(err)
    console.log(results)
})

5、插入数据

js
const userObj={
    username:"武松",
    password:"43136434"
}

const querySql="insert into user (username, password) values (?,?)"

db.query(querySql,[userObj.username,userObj.password],(err,results)=>{
    if(err) return console.log(err)
    if(results.affectedRows==1) {
        console.log("插入数据成功!")
    }
})

简化

js
const userObj={
    username:"武松",
    password:"43136434"
}

const insertSql="insert into user set ?"

db.query(insertSql,userObj,(err,results)=>{
    if(err) return console.log(err)
    if(results.affectedRows==1) {
        console.log("插入数据成功!")
    }
})

6、更新数据

js
const userObj={
    id:2,
    username:"黄帅哥",
    password:"3434343"
}

const updateSql="update user set username=?,password=? where id=?"

db.query(updateSql,[userObj.username,userObj.password,userObj.id],(err,results)=>{
    if(err) return console.log(err)
   if(results.affectedRows===1){
    console.log("修改数据成功!")
   }
})

简化

js
const userObj={
    id:2,
    username:"黄帅哥",
    password:"3434343"
}

const updateSql="update user set ? where id=?"

db.query(updateSql,[userObj,userObj.id],(err,results)=>{
    if(err) return console.log(err)
   if(results.affectedRows===1){
    console.log("修改数据成功!")
   }
})

7、删除数据

js
const deleteSql="delete from user where id=?"

db.query(deleteSql,5,(err,results)=>{
    if(err) return console.log(err)
    if(results.affectedRows) return console.log("删除数据成功!")
})

8、标记删除

为了保险起见,推荐使用标记删除的形式,来模拟删除的动作,就是在表中设置类似于status的状态字段,使用update语句,将对应status字段标记为删除即可

js
const deleteSql="delete from user set stauts=? where id=?"

db.query(deleteSql,[0,5],(err,results)=>{
    if(err) return console.log(err)
    if(results.affectedRows) return console.log("删除数据成功!")
})