自学内容网 自学内容网

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("标记删除成功");
});


原文地址:https://blog.csdn.net/IT_iosers/article/details/143571762

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!