1. 安装mysql数据库
:::success npm install mysql :::
2. 建立连接
:::success
const db = mysql.createPool({
host:’127.0.0.1’,//数据库的IP地址
user:’root’,//数据库的账号
password:’ygn0522’, //数据库密码
database:’my_db_01’ //指定要操作那个数据库
})
:::
3. 检测是否正常工作
db.query('select * from users', (err, result) => {
if(err)return console.log(err.message)
console.log(result)
})
3.1 查询数据
const str = 'select * from users'
db.query(str,(err, res) => {
if(err) return console.log(err.message)
console.log(res)
})
const str = 'select username, passername from users'
db.query(str,(err, res) => {
if(err)
return console.log(err.message)
console.log(res)
})
3.2 插入数据
//要插入的数据对象
const obj = {userName:'OPPO', passername:'OPPO132'}
//待执行的SQL语句, 其中的?表示占位符
const sqlStr = 'insert into users (username, passername) values (?,?)'
db.query(sqlStr, [obj.userName,obj.passername], (err,res) => {
//失败
if(err)return console.log(err.message)
//成功
if(res.affectedRows === 1){
console.log('插入成功')
}
})
const obj ={username:'HHAA', passername:'HHAA123',}
const sqlStr = 'insert into users set ?'
db.query(sqlStr,obj, (err, res) => {
if(err)return console.log(err.message)
if(res.affectedRows === 1){
console.log('插入数据成功')
}
})
3.3 更新数据
const user = { id: 5, username: 'IRIC', passername: '123456' }
const sqlSre = 'update users set username=?,passername=?where id=?'
db.query(sqlSre, [user.username, user.passername, user.id], (err, res) => {
if (err) return console.log(err.message)
if (res.affectedRows === 1) {
console.log('插入数据成功')
}
})
const user = { id: 5, username: 'IRIC22', passername: '123456-22' }
const sqlStr= 'update users set ? where id=?'
db.query(sqlStr,[user, user.id], (err, res) => {
if (err) return console.log(err.message)
if (res.affectedRows === 1) {
console.log('插入数据成功')
}
})
3.4 删除数据
const sqlStr= 'delete from users where id=?'
db.query(sqlStr,5, (err, res) => {
if (err) return console.log(err.message)
if (res.affectedRows === 1) {
console.log('删除成功')
}
})
使用delete语句,会真的把数据从数据表中删除掉。为了保险起见, 推介使用标记删除的形式。
所谓标记删除,就是在表中设置类似status这样的状态字段, 来标记当前数据是否被删除。
当用户执行了删除动作时, 我们并没有执行delete语句把数据删除掉, 而是执行了update语句, 将这条数据对应的status字段标记为删除即可。