在node中操作mysql数据库

目录

前言

在node中安装mysql模块

引入绑定数据库

验证mysql模块能否正常工作

便捷方式

便捷方式


前言

本文介绍在node中对数据库使用sql语句进行增删改查

在node中安装mysql模块

npm i mysql

引入绑定数据库

导入mysql模块

const mysql = require('mysql')

绑定数据库

const db = mysql.createPool({
    host:'127.0.0.1',
    user:'root',
    password:'数据库密码',
    database:'数据库名称'
})

验证mysql模块能否正常工作

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

当成功打印 [ RowDataPacket { '1': 1 } ] 则代表能正常工作

const user = {username:'xx',password:'0000'}

const sqlStr = 'insert into users(username,password)value(?,?)'

db.query(sqlStr,[user.username,user.password],(err,results)=> {
    if(err) return console.log(err.message)
    if(results.affectedRow === 1){
        console.log('插入成功');
    }
})
  • 匹配的数据库对象.query('sql语句',增的对象,(err,results)=>{})
  • results.affectedRow === 1:sql语句改变的行数为1
  • ?:占位符

注意:当sql语句中占位符为仅为一个时,可省略数组。两个以上时,必须以数组形式

便捷方式

想使用便捷方式,需要数据对象的每个属性和数据表的字段一一对应

const user = {username:'xx2',password:'0000'}

const sqlStr = 'insert into users set ?'

db.query(sqlStr,user,(err,results)=> {
    if(err) return console.log(err.message)
    if(results.affectedRow === 1){
        console.log('插入成功');
    }
})

由以上代码可知

原sql语句

const sqlStr = 'insert into users(username,password)value(?,?)'

便捷方式

const sqlStr = 'insert into users set ?'

原sql语句表名后面的一长串被 set ?替代

db.query(sqlStr,[user.username,user.password],(err,results)=>{})

便捷方式

db.query(sqlStr,user,(err,results)=>{})

省略了数组

指定id进行更改

const user = { id:16,username:'xx1',password:'0000'}

const sqlStr = 'update users set username=?,password=?where id =?'

db.query(sqlStr,[user.username,user.password,user.id],(err,results)=> {
    if(err) return console.log(err.message)
    if(results.affectedRow === 1){
        console.log('插入成功');
    }
})

便捷方式
const user = { id:18,username:'xx3',password:'1111'}

const sqlStr = 'update users set ?where id =?'

db.query(sqlStr,[user,user.id],(err,results)=> {
    if(err) return console.log(err.message)
    if(results.affectedRow === 1){
        console.log('插入成功');
    }
})

根据id唯一标识来删除对应的数据,直接删除数据是十分危险的,容易操作失误所以这里推荐使用标记删除

标记删除就是使用update语句改变status的状态,当看到状态为1时,即代表这条数据已经被禁用了

const user = { id:16,status:1}

const sqlStr = 'update users set status=?where id =?'

db.query(sqlStr,[user.status,user.id],(err,results)=> {
    if(err) return console.log(err.message)
    if(results.affectedRow === 1){
        console.log('插入成功');
    }
})

const sqlStr = 'select * from users'

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

评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

软工不秃头

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值