MySQL数据库node使用详解

 更新时间:2023年06月30日 10:56:55   作者:木公176  
这篇文章主要介绍了MySQL数据库node使用,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

1 MySQL查询对象

2 MySQL查询数组

3 mysql2库介绍使用

4 mysql2预处理语句

5 mysql2连接池使用

6 mysql2的Promi

这里仅说明如何使用服务器连接数据库并进行操作。

预处理语句就是可以输入变量的语句(表现形式是有符号:?)。需要使用.execute来执行;

需要运行普通的语句(不添加变量的语句)。就使用query。

预处理语句有很多好处,比如性能好、安全性(sql注入)。

 如果连接的用户很多,每次都创建数据库的连接和销毁连接会有影响,所以创建数据库连接的时候我们可以使用连接池来做优化

没使用连接池的连接方法:

 使用了连接池的方法:

需要下载相应的第三方库才能让node驱动数据库:

npm install mysql2

准备数据-将json文件的数据插入到数据库中

从phpne.json文件里面获取json格式的数据并写到数据库里面。

const mysql = require('mysql2');
const connection = mysql.createConnection({
  host: 'localhost',
  port: 3306,
  user: 'root',
  password: 'Coderwhy123.',
  database: 'music_db'
});
const statement = `INSERT INTO products SET ?;`
const phoneJson = require('./phone.json');
for (let phone of phoneJson) {
  connection.query(statement, phone);
}

phone.jsond的内容:

[
  {
    "brand": "华为",
    "title": "华为nova 3(全网通) ",
    "price": 2699,
    "score": 6.7,
    "voteCnt": 65,
    "url": "http://detail.zol.com.cn/cell_phone/index1185512.shtml",
    "pid": "1185512"
  },
  {
    "brand": "华为",
    "title": "华为P20 Pro(6GB RAM/全网通) ",
    "price": 4488,
    "score": 8.3,
    "voteCnt": 103,
    "url": "http://detail.zol.com.cn/cell_phone/index1207038.shtml",
    "pid": "1207038"
  },
  {
    "brand": "华为",
    "title": "华为P20(全网通) ",
    "price": 3388,
    "score": 8.4,
    "voteCnt": 127,
    "url": "http://detail.zol.com.cn/cell_phone/index1175779.shtml",
    "pid": "1175779"
  },
  {
    "brand": "华为",
    "title": "华为nova 3i(4GB RAM/全网通) ",
    "price": 1999,
    "score": 7,
    "voteCnt": 9,
    "url": "http://detail.zol.com.cn/cell_phone/index1222100.shtml",
    "pid": "1222100"
  }
]

mysql2-基本使用

const mysql = require('mysql2')
// 1.创建一个连接(连接上数据库)
const connection = mysql.createConnection({
  host: 'localhost',
  port: 3306,
  database: 'music_db',
  user: 'root',
  password: 'Coderwhy123.'
})
// 2.执行操作语句, 操作数据库
const statement = 'SELECT * FROM `students`;'
// structure query language: DDL/DML/DQL/DCL
// query可以执行DDL/DML/DQL/DCL的语句的代码。返回的值在回调函数里面。
connection.query(statement, (err, values, fields) => {
  if (err) {
    console.log('查询失败:', err)
    return
  }
  // 查看结果
  console.log(values)
  // console.log(fields)
})

mysql2-预处理语句

const mysql = require('mysql2')
// 1.创建一个连接
const connection = mysql.createConnection({
  host: 'localhost',
  port: 3306,
  database: 'music_db',
  user: 'root',
  password: 'Coderwhy123.'
})
// 2.执行一个SQL语句: 预处理语句
const statement = 'SELECT * FROM `products` WHERE price > ? AND score > ?;'
connection.execute(statement, [1000, 8], (err, values) => {
  console.log(values)
})
// connection.destroy()

mysql2-连接池使用

const mysql = require('mysql2')
// 1.创建一个连接
const connectionPool = mysql.createPool({
  host: 'localhost',
  port: 3306,
  database: 'music_db',
  user: 'root',
  password: 'Coderwhy123.',
 // connectionLimit用来限制连接数量的
  connectionLimit: 5
})
// 2.执行一个SQL语句: 预处理语句
const statement = 'SELECT * FROM `products` WHERE price > ? AND score > ?;'
connectionPool.execute(statement, [1000, 8], (err, values) => {
  console.log(values)
})

mysql2-Promise写法

const mysql = require('mysql2')
// 1.创建一个连接
const connectionPool = mysql.createPool({
  host: 'localhost',
  port: 3306,
  database: 'music_db',
  user: 'root',
  password: 'Coderwhy123.',
  connectionLimit: 5
})
// 2.执行一个SQL语句: 预处理语句
const statement = 'SELECT * FROM `products` WHERE price > ? AND score > ?;'
connectionPool.promise().execute(statement, [1000, 9]).then((res) => {
  const [values, fields] = res
  console.log('-------------------values------------------')
  console.log(values)
  console.log('-------------------fields------------------')
  console.log(fields)
}).catch(err => {
  console.log(err)
})

到此这篇关于MySQL数据库node使用的文章就介绍到这了,更多相关mysql node使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySql 5.6.14 Win32位免安装解压缩版配置教程

    MySql 5.6.14 Win32位免安装解压缩版配置教程

    本文给大家介绍mysql 5.6.14 win32 位免安装解压缩版配置方法,本文分步骤给大家介绍的非常详细,具有一定的参考借鉴价值,对mysql5.6.14 免安装解压缩版配置方法感兴趣的朋友一起看看吧
    2016-11-11
  • 数据库中的SELECT语句逻辑执行顺序分析

    数据库中的SELECT语句逻辑执行顺序分析

    这篇文章主要介绍了数据库中的SELECT语句逻辑执行顺序分析,并列出了一些例子,需要的朋友可以参考下
    2014-07-07
  • 详解MySqlBulkLoader的使用

    详解MySqlBulkLoader的使用

    这篇文章主要介绍了MySqlBulkLoader的使用 ,本文分两部分来写,第一部分写一下MySqlBulkLoader的使用,第二部分记录使用过程中出现的问题,需要的朋友可以参考下
    2022-07-07
  • MySQL中的悲观锁与乐观锁

    MySQL中的悲观锁与乐观锁

    这篇文章主要介绍了MySQL中悲观锁与乐观锁的相关资料,帮助大家更好的理解和学习MySQL数据库,感兴趣的朋友可以了解下
    2020-09-09
  • MySQL 格式化时间的实现示例

    MySQL 格式化时间的实现示例

    MySQL提供了多种日期和时间类型,在处理时间时需要根据不同类型选择不同的格式化方法,常用的日期类型有DATE、YEAR、TIME;常用的日期时间类型有DATETIME和TIMESTAMP,本文就来介绍一下MySQL 格式化时间,感兴趣的可以了解一下
    2023-10-10
  • 详解MySQL 数据库范式

    详解MySQL 数据库范式

    这篇文章主要介绍了详解MySQL 数据库范式的相关资料,帮助大家更好的理解和学习MySQL,感兴趣的朋友可以了解下
    2020-11-11
  • MySQL server has gone away错误提示解决方法

    MySQL server has gone away错误提示解决方法

    今天遇到类似的情景,MySQL只是冷冷的说:MySQL server has gone away。
    2008-11-11
  • Mysql数据库之索引优化

    Mysql数据库之索引优化

    MySQL凭借着出色的性能、低廉的成本、丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库。本文给大家介绍mysql数据库之索引优化,感兴趣的朋友一起学习吧
    2016-03-03
  • mysql的udf编程之非阻塞超时重传

    mysql的udf编程之非阻塞超时重传

    这篇文章主要介绍了mysql udf编程的非阻塞超时重传示例,需要的朋友可以参考下
    2014-03-03
  • 浅谈MyISAM 和 InnoDB 的区别与优化

    浅谈MyISAM 和 InnoDB 的区别与优化

    InnoDB和MyISAM是在使用MySQL最常用的两个表类型,各有优缺点,视具体应用而定。下面我们就来具体探讨下吧
    2015-07-07

最新评论