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

7 篇文章 0 订阅
5 篇文章 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遍历显示。

用Navicat工具的这篇文章一定要看!!!

MySQL的管理工具Navicat 安装​​​​​​​长期使用呦!!!​​​​​​​

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值