当前位置: 首页 > news >正文

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] = resconsole.log('-------------------values------------------')console.log(values)console.log('-------------------fields------------------')console.log(fields)
}).catch(err => {console.log(err)
})

http://www.lryc.cn/news/92415.html

相关文章:

  • JAVA使用HTTP代码示例模板
  • elementui tree 支持虚拟滚动和treeLine (下)
  • 富人父母都教给孩子什么样的财富思维?
  • 国内比较火的报表工具测评——Smartbi电子表格软件和Finereport
  • 变电所运维云平台在电力系统中的应用
  • 【51单片机】AT24C20数据帧(I2C总线)
  • Python内置函数isinstance()函数介绍
  • QxRibbon 知:搭建 CMake 构建环境
  • Spring框架-面试题核心概念
  • Tomcat部署及优化
  • C++/C按照时间命名保存bin文件
  • 面向多告警源,如何构建统一告警管理体系?
  • python 面向对象 -- 简单理解版
  • SpringMVC 程序开发
  • 使用单片机遇到的几个问题及解决方案1
  • vue项目中el-upload 组件添加token的方法
  • 独立按键检测短按、长按,松手后响应操作
  • BurpSuite2023测试越权漏洞
  • 申请国家标准项目管理专业人员能力评级(CSPM)报名条件有哪些?
  • 代码随想录算法训练营第五十二天|300.最长递增子序列|674. 最长连续递增序列|718. 最长重复子数组
  • 完全卸载mysql教程
  • 4G开发板-安卓手机开发套件-MTK主板开发板定制
  • 人工智能十大新星揭晓,华人学者占90%
  • ROS学习——通信机制(话题通信①—发布方实现)
  • 【运筹优化】最短路算法之SPFA算法 + Java代码实现
  • linuxOPS基础_linux权限管理
  • linux安装homeassistant(智能设备远程控制开源框架)
  • TensorRT Triton Inference Server: 版本 error魔术标记不匹配 , NGC使用
  • Elasticsearch 文本分析器(下)
  • Git操作方法