MySQL 预处理、如何在 [Node.js] 中使用 MySQL?

avatar
作者
猴君
阅读量:0

前面文章我们已经总结了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框架


广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!