ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

【NodeJS】操作MySQL

2022-04-27 16:34:55  阅读:127  来源: 互联网

标签:name NodeJS age SQL user error MySQL 操作 log


 

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()

 

 

  

 

标签:name,NodeJS,age,SQL,user,error,MySQL,操作,log
来源: https://www.cnblogs.com/mindzone/p/15237272.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有