【NodeJS】操作MySQL
1、在连接的数据库中准备测试操作的表:
CREATE TABLE `user` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '姓名',
`age` int DEFAULT NULL COMMENT '年龄',
`email` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; INSERT INTO `test`.`user`(`id`, `name`, `age`, `email`) VALUES (1, 'Jone', 18, 'test1@baomidou.com');
INSERT INTO `test`.`user`(`id`, `name`, `age`, `email`) VALUES (2, 'Jack', 20, 'test2@baomidou.com');
INSERT INTO `test`.`user`(`id`, `name`, `age`, `email`) VALUES (3, 'Tom', 28, 'test3@baomidou.com');
INSERT INTO `test`.`user`(`id`, `name`, `age`, `email`) VALUES (4, 'Sandy', 21, 'test4@baomidou.com');
INSERT INTO `test`.`user`(`id`, `name`, `age`, `email`) VALUES (5, 'Billie', 24, 'test5@baomidou.com');
2、开发的JS文件所在目录安装MySQL模块
npm install mysql
3、编写JS文件,引入模块并创建连接池
// mysql模块导入
const MYSQL = require('mysql') // 创建连接池,入参连接配置参数
const db = MYSQL.createPool({
host: '127.0.0.1',
port: 3308,
user: 'root',
password: '123456',
database: 'test',
})
4、查询操作
// 查询操作
const SQL_STATEMENT = 'SELECT * FROM user;'
db.query(SQL_STATEMENT, (error, resultset) => {
// SQL执行异常或者连接异常,将返回error异常对象
if (error) return console.log(JSON.stringify(error))
// 如果SQL执行正常将返回结果集对象 [row1, row2, row3, ...]
console.log(resultset)
})
5、新增操作
// 新增操作: 默认是开启了自动提交的
const user = {
name: 'cloud9',
age: 22,
email: '1791255334@qq.com'
}
// 占位符传参 , 操作的结果通过结果集对象的affectedRows属性来返回
const SQL = 'INSERT INTO `test`.`user` VALUES(NULL, ?, ?, ?);'
db.query(SQL, [user.name, user.age, user.email], (error, results) => {
if (error) return console.log(error)
console.log(results.affectedRows + ' 插入操作')
}) // 支持按对象方式直接插入
const SQL = 'INSERT INTO `test`.`user` SET ?'
db.query(SQL, user, (error, results) => {
if (error) return console.log(error)
console.log(results.affectedRows + ' 插入操作')
})
6、更新操作,和新增基本是一致的
const user = {
name: 'cloud9',
age: 22,
email: '1791255334@qq.com'
}
// 同理UPDATE语句也可以
const UPDATE_SQL = 'UPDATE `test`.`user` SET name = ?, age = ? WHERE id = 1 '
db.query(UPDATE_SQL, [user.name, user.age], (error, results) => {
if (error) return console.log(error)
console.log(results.affectedRows + ' 插入操作')
})
// 对象支持
const UPDATE_SQL = 'UPDATE `test`.`user` SET ? '
db.query(UPDATE_SQL, user, (error, results) => {
if (error) return console.log(error)
console.log(results.affectedRows + ' 插入操作')
}
7、新增,更新,删除,基本同理,不多赘述
8、连接池资源释放:
// 关闭连接池资源
db.end()
使用ES8的 Async Await语法:
/**
* 安装mysql2模块
* npm install mysql2
*/
import mysql from 'mysql2' // 连接配置
const connectorConfig = {
host: '127.0.0.1',
port: 3308,
user: 'root',
password: '123456',
database: 'my-info'
} // promise包装处理?
const connectPool = mysql.createPool(connectorConfig).promise() /**
* 使用ES8 Async & Await
*/
async function pageQuery(pageIndex, pageSize) { const QUERY_SQL = 'SELECT * FROM `english-words` LIMIT ?, ?' /**
* JS数组也能解构,直接声明一个任意变量名称,
* 获取数组第一个元素返回给此变量,
* 以此类推
*/
const [resultSet, columnDefines] = await connectPool.query(QUERY_SQL, [ parseInt( (1 - pageIndex) * pageSize), pageSize])
console.log(resultSet)
// console.log(columnDefines) // 不能放在外面释放,因为是一个异步任务
connectPool.end()
} // 调用
pageQuery(1, 5)
【NodeJS】操作MySQL的更多相关文章
- Nodejs操作MySQL数据库
https://github.com/mysqljs/mysql 如何用nodejs操作MySql数据呢,其实写法还是简单的, 1.开始在你的node项目中 npm install mysql - ...
- nodejs 操作mysql
这篇文章主要介绍了nodejs中操作mysql数据库示例,本文演示了如何在NodeJS中创建创建mysql连接.mysql数据库.插入数据.查询数据等功能,需要的朋友可以参考下 引言: 继前面的No ...
- nodeJs 操作Mysql数据库
nodeJs下操作数据库需要安装npm模块: mysql npm install mysql --save-dev 新建express项目 express --view=ejs 在项目根目录下新建数据 ...
- nodejs操作mysql
var mysql = require('mysql');var pool = mysql.createPool({ host: 'localhost', user: 'root', password ...
- Nodejs操作MySQL - 增删改查
先安装npm模块项目 npm init 安装mysql npm install mysql --save Nodejs 连接msyql // 导入mysql const mysql = require ...
- nodejs操作mysql常见错误
1.Cannot enqueue Handshake after already enqueuing a Hand shake.这个错误提示意思是某个数据库连接已经执行了,不能进行多次连接了.遇到此类 ...
- nodejs 操作 mysql
1.安装插件 npm install mysql 2.调用代码 var mysql = require('mysql') var connection = mysql.createConnection ...
- nodejs操作MySQL,mysql连接池及事务的使用
https://blog.csdn.net/jasnet_u/article/details/88605168
- nodejs 连接 mysql 查询事务处理
自己用 mysql 很多次的,然后又是主玩nodejs的.专门写一篇文章来说说nodejs连接mysql数据库.在使用之前,请检查计算机是否具有一下环境! nodejs 执行环境. mysql数据库环 ...
- Nodejs连接mysql的增、删、改、查操作
一,创建数据库 Source Database : my_news_test SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- ...
随机推荐
- Android应用程序启动流程浅析-(三万字长文慎点&Android14)
在Android桌面Launcher源码浅析中介绍了Android的桌面程序Launcher是如何响应用户点击事件并启动App的,这篇文章继续介绍App在Android系统层是的启动流程. 一.启动流 ...
- LeetCode 295. Find Median from Data Stream数据流的中位数 (C++/Java)
题目: Median is the middle value in an ordered integer list. If the size of the list is even, there is ...
- 高可用集群MHA方案
爱奇艺在用的数据库高可用方案 MHA 是目前比较成熟及流行的 MySQL 高可用解决方案,很多互联网公司正是直接使用或者基于 MHA 的架构进行改造实现 MySQL 的高可用. MHA 能在 30 秒 ...
- Wireshark基础教程
Wireshark是非常流行的网络封包分析软件,可以截取各种网络数据包,并显示数据包详细信息.常用于开发测试过程各种问题定位.本文主要内容包括: 1.Wireshark软件下载和安装以及Wiresha ...
- .NET周刊【6月第2期 2024-06-09】
国内文章 C#开源实用的工具类库,集成超过1000多种扩展方法 https://www.cnblogs.com/Can-daydayup/p/18230586 文章介绍了一个免费的C#工具类库Z.Ex ...
- python重拾第七天-面向对象进阶
本节内容: 面向对象高级语法部分 经典类vs新式类 静态方法.类方法.属性方法 类的特殊方法 反射 异常处理 Socket开发基础 作业:开发一个支持多用户在线的FTP程序 面向对象高级语法部分 经典 ...
- ARM+DSP!全志T113-i+玄铁HiFi4开发板硬件说明书(1)
前 言 本文档主要介绍开发板硬件接口资源以及设计注意事项等内容,测试板卡为全志T113-i+玄铁HiFi4开发板.由于篇幅问题,本篇文章共分为上下两集,点击账户可查看更多内容详情,开发问题欢迎留言,感 ...
- 基于NXP i.MX 6ULL——MQTT通信协议的开发案例
前 言 本指导文档适用开发环境: Windows开发环境:Windows 7 64bit.Windows 10 64bit Linux开发环境:Ubuntu 18.04.4 64bit 拟机:VMw ...
- Linux的访问权限详解
题目 解读访问权限 rw-r--r--分别代表什么东西 r:代表可读 w:可写 e:可执行 方便起见进行拆分 rw- 代表文件所属用户的权限 r-- 代表同组用户的权限 r-- 代表其他用户的权限 同 ...
- new操作符具体干了什么呢?
new操作符的作用如下: 1.创建一个空对象2.由this变量引用该对象3.该对象继承该函数的原型4.把属性和方法加入到this引用的对象中5.新创建的对象由this引用,最后隐式地返回this.过程 ...