Nodejs》》MySql
Node.js 操作MySQL数据库
文档
# 项目要先安装mysql包npm i mysql@xx // 安装指定版本npm i mysql // 默认安装最新版本
# 连接 mysq// 使用连接池连接const mysql = require('mysql')# 建立连接const db = mysql.createPool({host:'', // 数据库的IP地址user:'root', // 登录数据库的账号password:'密码', // 密码database:'xxx' // 指定要操作具体的数据库 })# 测试mysq连接是否正常db.query('select 1',(err,results)=>{if(err) return console.log(err.message)//只要打印出 【RowDataPacket {'1':1}】 的结果,就证明数据库连接正常 console.log(results)})# 插入数据
const user = {userName:'zen',age:33,gender:'男'}
//用英文 ? 占位符
const sqlstr = ' insert into users(userName , age, gender) values(?,?,?)'
// 使用数组的形式,依次为 ? 占位符指定具体的值
db.query(sqlstr,[user.userName,user.age,user.gender],(err,results)=>{if(err) return console.log(err.message)if(results.affectedRows ===1){console.log('插入数据成功')}})# 插入数据的便捷方式 如果 插入的字段很多
# 向表中新增数据时,如果数据对象的每个属性和数据表的字段 一一对应,则可以通过如下方式 快速插入数据
const user = {userName:'zen',age:33,gender:'男'}
//用英文 ? 占位符
const sqlstr = ' insert into users set ?'
// 直接将数据对象当作占位符的值
db.query(sqlstr,user,(err,results)=>{if(err) return console.log(err.message)if(results.affectedRows ===1){console.log('插入数据成功')}})# 查询数据 注意 注意 注意 如果执行的是 select 查询语句,则执行的结果是数组const sqlstr = ' select * from users'
db.query(sqlstr,,(err,results)=>{if(err) return console.log(err.message)console.log(results)})# 更新数据
const user = {id:1001,userName:'zen',age:33,gender:'男'}
//用英文 ? 占位符
const sqlstr = ' update users set userName = ?, age=?, gender=? where id=?'
// 使用数组的形式,依次为 ? 占位符指定具体的值
db.query(sqlstr,[user.userName,user.age,user.gender,user.id],(err,results)=>{if(err) return console.log(err.message)// 注意 执行 update语句之后,执行的结果,也是一个对象,可以通过affectedRows 判断是否更新成功if(results.affectedRows ===1){console.log('更新数据成功')}})# 更新数据便捷方式 跟插入类似
# 更新表数据时,如果数据对象的每个属性和数据表的字段 一一对应,则可以通过如下方式 快速更新数据
const user = {id:1001,userName:'zen',age:33,gender:'男'}
//用英文 ? 占位符
const sqlstr = ' update users set ? where id=?'
// 使用数组的形式,依次为 ? 占位符指定具体的值
db.query(sqlstr,[user.userName,user.id],(err,results)=>{if(err) return console.log(err.message)// 注意 执行 update语句之后,执行的结果,也是一个对象,可以通过affectedRows 判断是否更新成功if(results.affectedRows ===1){console.log('更新数据成功')}})## 删除数据//用英文 ? 占位符
const sqlstr = ' delete users where id=?'
// 注意 注意 注意 注意 如果SQL语句中有多个占位符,则必须使用数组为每个占位符指定具体的值如果sql语句中只有一个占位符,则可以省略数组
db.query(sqlstr,1001,(err,results)=>{if(err) return console.log(err.message)// 注意 执行 update语句之后,执行的结果,也是一个对象,可以通过affectedRows 判断是否更新成功if(results.affectedRows ===1){console.log('更新数据成功')}})