MySQL 预处理、如何在 [Node.js] 中使用 MySQL?
创始人
2024-11-11 11:35:24

前面文章我们已经总结了mysql下载安装配置启动以及如何用 Navicat 连接,还有MySQL的入门基础知识 、Node.js的基本知识、Express框架基于Node.js基础知识、下面我们总结如何在Node.js中使用MySQL数据库以及MySQL预处理基本知识。

目录

一、MySQL预处理

二、如何在Node.js中使用MySQL

1. 首先安装mysql2驱动程

2. 启动服务

3. 使用Node.js连接数据库

4. 使用数据库的连接池

 5. 使用Promise

6. 使用预处理语


一、MySQL预处理

1.prepare  预处理名称  from  "sql 语句";

prepare ppstmt from 'select * from student where id = ?';

2. 发送 sql 语句到 mysql 服务器;

3. mysql 服务器对 sql 语句进行解析-编译,但不执行;

4. 在客户端准备相关数据;

 set @id = 2;

5.mysql 服务器对数据和预处理 sql 编译,然后执行该 sql 语句;

execute ppstmt using @id; 

6.服务器将执行结果返回给客户端。 

二、如何在Node.js中使用MySQL

1. 首先安装mysql2驱动程

 npm install mysql2

 

2. 启动服务

PS D:\CODE\VSCODE\node\express> cd course   //打开项目路径
PS D:\CODE\VSCODE\node\express\course> npm start  //启动服务

3. 使用Node.js连接数据库
const mysql = require('mysql2') // 在Node.js中连接数据库 const connection = mysql.createConnection({     host: 'localhost',     port: 3306,     user: 'root',     database: 'demo',     password:'zx123'   });   const statement = `select * from student2 where id = 1; `   connection.query(statement,(err,results,fields) => {     console.log(err,results,fields);   })

下图是我们成功连接数据库,并且根据我们的查询语句数据库返回的结果展示,query()回调函数中的三个值,err,results,fields分别是什么

  1. err数据是空,没有错误连接成功
  2. results 结果是对象数组[ { id: 1, name: '奇奇', gender: '男', age: 20 } ] ,
  3. fields 是数组
  4. [
      `id` INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
      `name` VARCHAR(20) NOT NULL,
      `gender` STRING(8) ENUM,
      `age` TINYINT UNSIGNED NOT NULL
    ]

 

4. 使用数据库的连接池

通过重复使用之前的连接池,可以减少连接到mysql服务器的时间

const mysql = require('mysql2') // 2.使用数据库的连接池 const pool = mysql.createPool({     host: 'localhost',     user: 'root',     database: 'demo',     password:'zx123',     waitForConnections: true,     connectionLimit: 10, //连接池中最多建立几个连接     queueLimit: 0   });    const statement = `select * from student2 where id = 1; `   pool.query(statement,(err,results) => {     console.log(err,results);   })

 这里我们根据查询语句也是拿到了数据,并且打印了err 是null。

 

 5. 使用Promise
const mysql = require('mysql2') //3.使用Promise  const pool = mysql.createPool({     host: 'localhost',     user: 'root',     database: 'demo',     password:'zx123',     waitForConnections: true,     connectionLimit: 10, //连接池中最多建立几个连接     queueLimit: 0   }).promise()    const statement = `select * from student2 where id = 3; `   pool.query(statement).then(results => {     console.log(results);   }).catch(err => {     console.log(err)   })

这里我们同样也是根据查询语句拿到了数据库返回的数据,并且成功打印在控制台。

6. 使用预处理语句
const mysql = require('mysql2') // 4.使用预处理语句 const pool = mysql.createPool({     host: 'localhost',     user: 'root',     database: 'demo',     password:'zx123',     waitForConnections: true,     connectionLimit: 10, //连接池中最多建立几个连接     queueLimit: 0   }).promise()  const statement = `select * from student2 where id = ?; `  pool.execute(statement,[2]).then(results => {     console.log(results[0]); }).catch(err => {     console.log(err) })

这里我们可以看到已经成功连接数据库,并且根据我们查询语句返回了相应的数据,成功打印在控制台。

这里html文件中的数据不是上面的数据。我们前面写过数据如何在html页面展示。

我们前面写过拿到的数据如何在html遍历显示。

mysql基本知识、基于Node.js应用的Express框架


相关内容

热门资讯

裸辞做“一人公司”,我后悔了 去年这个时候,一位以色列程序员正在东南亚旅行。他顺手把一个在脑子里转了很久的想法做成了产品,一个让任...
南京建成国内首个Pre-6G试... 4月21日,2026全球6G技术与产业生态大会在南京开幕。全息互动技术展台前,一名远在北京的工作人员...
超梵求职受邀参加“2025抖音... 超梵求职受邀参加“2025抖音巨量引擎成人教育行业生态大会”,探讨分享优质内容传播,服务万千学员。 ...
摩托罗拉Razr 2026(R... IT之家 4 月 22 日消息,摩托罗拉宣布新一代 Razr 折叠手机将于 4 月 29 日在美国发...
库克卸任,特纳斯领航:苹果新纪... 苹果首席执行官蒂姆·库克将卸任,硬件工程主管约翰·特纳斯将接任,苹果公司今天宣布此事。 库克将在夏季...