目录
一、安装与配置mysql 模块
1、在项目中操作mysql的步骤
- 安装操作 MySQL 数据库的第三方模块(mysql)
- 通过 mysql 模块连接到 MySQL 数据库
- 通过 mysql 模块执行 SQL 语句
2 安装与配置 mysql 模块
(1) 安装 mysql 模块
mysql 模块是托管于 npm 上的 第三方模块 。它提供了在 Node.js 项目中 连接 和 操作 MySQL 数据库的能力。
想要在项目中使用它,需要先运行如下命令,将 mysql 安装为项目的依赖包:
npm install mysql
(2) 配置 mysql 模块
在使用 mysql 模块操作 MySQL 数据库之前, 必须先对 mysql 模块进行必要的配置 ,主要的配置步骤如下:
代码演示:
// 1、导入mysql 模块
const mysql = require('mysql');
//2、建立与mysql数据库的链接关系
const db = mysql.createPool({
host: '127.0.0.1', //数据库的IP地址
user: 'root', // 登录数据库的账号
password: '123456',
database:'dbtest' // 指定要操作哪个数据库
})
(3)测试 mysql 模块能否正常工作
调用 db.query() 函数,指定要执行的 SQL 语句,通过回调函数拿到执行的结果
// 测试mysql 模块能是否正常工作
db.query('select 1', (err, results) => {
// mysql 工作期间报错了
if (err) return console.log(err.message);
// 能够成功执行SQL语句
console.log(results);
})
【注意】:只要能打印出[ RowDatePacket{ ' 1 ' : 1 } ],的结果,就证明数据库能正常连接
二、 使用 mysql 模块操作 MySQL 数据库
1. 查询数据
查询 employees 表中所有的数据:
// 查询表中所有的数据
const sqlStr = 'select * from employees';
db.query(sqlStr, (err, results) => {
// 如果查询成功
if (err) return console.log(err.message);
//如果查询成功
console.log(results);
})
2. 插入数据
向 employees 表中新增数据
// 插入数据
const user = { name: '花少北', gender: '男' }
// 定义待执行的SQL语句 ? 表示占位符
const sqlStr = 'insert into employees(name,gender) values(?,?)';
//执行SQL语句
db.query(sqlStr, [user.name, user.gender], (err, results) => {
if (err) return console.error(err);
// 执行成功,判断影响的行数是否等于1
//注意:如果执行的是insert into语句,则results 是一个对象,
//可以通过affectRows属性判断是否插入数据插入成功
if (results.affectedRows === 1) {
console.log('插入成功');
}
})
插入数据的便捷方式:
向employees 表中新增数据时,如果 数据对象的每个属性和数据表的字段 一一对应 ,则可以通过如
下方式快速插入数据:
// 插入数据便捷方式
const user = { name: '某幻', gender: '男', birthday: '1999-04-02', address: '青岛' };
// //待执行的SQL语句
const sqlStr = 'insert into employees set ?';
// //执行语句
db.query(sqlStr, user, (err, results) => {
if (err) return console.log(err.message);
if (results.affectedRows===1) {
console.log('插入成功');
}
})
3、更新数据
更新employees 表数据时,如果 数据对象的每个属性 和 数据表的字段 一一对应 ,则可以通过如下
方式快速更新表数据
// 更新数据便捷方式
const user = { id: 5, name: '花少北', birthday: '1996-09-08', phone: '145875xxxxx' };
//定义SQL语句
const sqlStr = 'update employees set ? where id=?'
//执行语句
db.query(sqlStr, [user, user.id], (err, results) => {
if (err) return console.log(err.message);
if (results.affectedRows) {
console.log('更新数据成功');
}
})
4、删除数据
在删除数据时,推荐根据 id 这样的唯一标识,来删除对应的数据。示例如下:
//删除 id 为 5 的用户
//定义SQL语句
const sqlStr = 'update employees set ? where id=?'
//执行语句
db.query(sqlStr, 5, (err, results) => {
if (err) return console.log(err.message);
if (results.affectedRows==1) {
console.log('删除数据成功');
}
})