当前位置: 首页 > news >正文

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('更新数据成功')}})
http://www.dtcms.com/a/319176.html

相关文章:

  • 单链表专题---暴力算法美学(1)(有视频演示)
  • Keil MDK-ARM V5.42a 完整安装教程
  • 如何使用Ollama在本地运行gpt-oss
  • 09-netty基础-手写rpc-原理-01
  • 上位机知识篇---aptapt-get
  • 全栈:怎么把sql导入SQLserver里面
  • [特殊字符] 2025年生成式大模型部署与推理优化全景解析
  • STM32 串口控制电机运行系统
  • PyTorch + PaddlePaddle 语音识别
  • 【基础】go进阶学习笔记
  • Android渲染/合成底层原理详解
  • B 站 SEO 优化全景指南:从基础到进阶的实操方法
  • 贪心+矩阵算法
  • Oracle 关闭 impdp任务
  • 云原生安全挑战与治理策略:从架构思维到落地实践
  • 基于大数据的美食视频播放数据可视化系统 Python+Django+Vue.js
  • 解读 gpt-oss-120b 和 gpt-oss-20b开源模型
  • 仓库管理系统-20-前端之记录管理的联表查询
  • Android中视图测量、布局、绘制过程
  • 嵌入式 - 数据结构:二叉树
  • GitHub 上 Star 数量前 20 的开源 AI 项目
  • X4000 私有 5G 实验室入门套件
  • 90-基于Flask的中国博物馆数据可视化分析系统
  • MySQL的变量、控制流程和游标:
  • 智能升级新纪元:基于Deepoc具身模型外拓开发板的除草机器人认知进化
  • git工程多个remote 拉取推送
  • 配置VScode内置Emmet自动补全代码
  • leetcode 415.字符串相加
  • 如何重塑企业服务体验?
  • 六边形架构模式深度解析