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

express项目中使用MySQL

在这里插入图片描述

一、安装mysql 模块

1.1 先配置包管理工具
npm init -y
1.2、安装mysql 模块
npm install mysql2

二、配置mysql

// 1、导入mysql模块
const mysql = require("mysql2");

// 2、建立与mysql 数据库的链接
const db = mysql.createPool({
  host: "127.0.0.1", // 数据库的ip地址
  user: "root", // 登录数据库的账号
  password: "Xiewei5036921.", // 登录数据库的密码
  database: "my_db_01", //指定要操作的数据库
});

三、测试mysql 能否正常工作

db.query("select * from user", (err, results) => {
  // mysql 模块工作期间报错了
  if (err) return console.log(err);
  // 能够成功的执行sql语句
  console.log(results);
});

四、使用

4.1、插入数据
// 1、要插入到users表中的数据对象
const user = { username: "xc", password: "456456" };
// 2、待执行的SQL 语句,其中英文的 ? 表示占位
const sqlStr = "insert into user (username,password) values(?,?)";
// 3、使用数组的形式,依次为 ? 占位符指定具体的值
db.query(sqlStr, [user.username, user.password], (err, results) => {
  if (err) return console.log(err.message);
  //   注意:如果执行的是insert into ,update  delete语句,则results 是个对象
  //   可以通过affectedRows 属性,来判断是否插入数据成功
  if (results.affectedRows === 1) console.log("插入数据成功");
});


4.2、便携插入方式 用insert into 表名 set ?
// 1、要插入的user表中的数据对象
const user = { username: "xc", password: "456456" };
// 2、待执行的sql语句,其中英文的?表示占位符
const sqlStr = "insert into user  set ?";
// 3、直接将数据对象当作占位符的值
db.query(sqlStr, user, (err, results) => {
  if (err) return console.log(err.message);
  //   注意:如果执行的是insert into ,update  delete语句,则results 是个对象
  //   可以通过affectedRows 属性,来判断是否插入数据成功
  if (results.affectedRows === 1) console.log("插入数据成功");
});

4.3、更新数据
// 1、要更新到users表中的数据对象
const user = { username: "xc", password: "456456",id: 1 };
// 2、待执行的SQL 语句,其中英文的 ? 表示占位
const sqlStr = "update  user set username=?,password=? where id =?";
// 3、使用数组的形式,依次为 ? 占位符指定具体的值
db.query(sqlStr, [user.username, user.password,user.id], (err, results) => {
  if (err) return console.log(err.message);
  //   注意:如果执行的是insert into ,update  delete语句,则results 是个对象
  //   可以通过affectedRows 属性,来判断是否插入数据成功
  if (results.affectedRows === 1) console.log("插入数据成功");
});


4.4、便携更新方式 用update 表名 set ? where id = ?
// 1、要更新的user表中的数据对象
const user = { username: "444321", password: "456456", id: 5 };
// 2、待执行的SQL 语句,其中英文的 ? 表示占位
const sqlStr = "update  user  set ? where id=?";
// 3、使用数组的形式,依次为 ? 占位符指定具体的值
// 注意 有几个? 第二个参数就要穿几个值
db.query(sqlStr, [user, user.id], (err, results) => {
  if (err) console.log(err.message);
  //   注意:如果执行的是insert into ,update  delete语句,则results 是个对象
  //   可以通过affectedRows 属性,来判断是否插入数据成功
  if (results.affectedRows === 1) {
    console.log("更新成功");
  } else {
    console.log("失败");
  }
});


4.5、 删除数据 不建议使用 一般用标记删除
// 删除数据
// 1、待执行的SQL 语句,其中英文的 ? 表示占位
const sqlStr = "delete from user where id=?";
// 2、使用数组的形式,依次为 ? 占位符指定具体的值
db.query(sqlStr, 7, (err, results) => {
  if (err) return console.log(err.message);
  //   注意:如果执行的是insert into 插入语句,则results 是个对象
  //   可以通过affectedRows 属性,来判断是否插入数据成功
  if (results.affectedRows === 1) console.log("删除数据成功");
});

4.6、标记删除 比如status 来代表禁用 使用
// 1、待执行的SQL 语句,其中英文的 ? 表示占位
const sqlStr = "update user set status = ? where id = ?";

db.query(sqlStr, [1, 5], (err, results) => {
  if (err) return console.log(err.message);
  //   可以通过affectedRows 属性,来判断是否删除
  if (results.affectedRows === 1) console.log("标记删除成功");
});


http://www.kler.cn/a/386959.html

相关文章:

  • 【C++】 list 与 string 基础与实现字符串操作
  • 【入门篇】A+B Problem——多语言版
  • centos查看硬盘资源使用情况命令大全
  • 【Pikachu】越权访问实战
  • 【Linux】常用命令(2.6万字汇总)
  • 计算机新手练级攻略——善用搜索引擎
  • 汽车共享服务管理:SpringBoot专业解决方案
  • SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder”
  • linux rocky 9.4部署和管理docker harbor私有源
  • ctfshow-web入门-反序列化(web265-web270)
  • windows C#-标识符命名规则和约定
  • Linux的目录结构 | 命令的认识 | 相对路径 | 绝对路径 | 常用命令(一)
  • 健身业务自动化:SpringBoot管理系统指南
  • 【基于轻量型架构的WEB开发】课程 12.5 数据回写 Java EE企业级应用开发教程 Spring+SpringMVC+MyBatis
  • 数据结构基
  • C++(函数重载,引用,nullptr)
  • Elmo驱动器上位机软件的详细配置
  • 7天用Go从零实现分布式缓存GeeCache(学习)
  • Oracle OCP认证考试考点详解082系列11
  • 数据分析:16s差异分析DESeq2 | Corncob | MaAsLin2 | ALDEx2
  • Spring框架之模板方法模式 (Template Method Pattern)
  • 关于上采样&下采样
  • R语言实战——一些批量对地理数据进行操作的方法
  • 最新开源DCL-SLAM:一种用于机器人群体的分布式协作激光雷达 SLAM 框架
  • QT版发送邮件程序
  • qt QShortcut详解