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.hqwc.cn/news/1144.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

spring源码编译笔记

下载源码 地址https://github.com/spring-projects/spring-framework/tree/v5.2.9.RELEASE 查看gradle对应版本 spring-framework-5.2.9.RELEASE/gradle/wrapper/gradle-wrapper.properties # 其他配置暂未了解具体用处,一切默认值 distributionBaseGRADLE_USE…

算法工程师提升工作效率的5个小工具

算法工程师在日常工作中大部分时间还是在和数据打交道。 诸如数据准备,数据清洗,特征分析(EDA) 等等。 这里给大家介绍我非常喜爱的5个处理数据的小工具, 也是我个人使用比较高频的几个工具,相信可以解决大家的一些痛点。 1&#…

企业邮箱如何将一个用户设置到多个部门/群组

1、使用管理员账号postmaster登录企业邮局,点击“邮局管理”。 2、点击“组织与成员”。 3、勾选需要设置的用户,点击“设置所属部门/群”。(例如:我们需要将所属销售分公司的高阳,加入到以下四个分销部中,…

实录分享 | Alluxio Operator一体化部署方案

今天给大家分享的内容是 Alluxio Operator的一体化部署方案。我会将内容分成 4 个部分来给大家讲解。 首先,介绍 Kubernetes 容器化部署和当前所面临的挑战。 然后,引入operator的概念,介绍当前业界关于Kubernetes 容器化部署问题的主流解决…

HTTP超详细教程

1,HTTP协议 1.1,HTTP简述 HTTP全称为超文本传输协议,是一种应用比较广泛的应用层协议。 那何为超文本? 超文本指的是传输的内容不仅仅是文本,比如 html,css,javaScript 等数据,还…

聚观早报|菜鸟推出自营快递菜鸟速递;字节迈出大模型赛道第一步

今日要闻:菜鸟推出自营快递「菜鸟速递」;字节迈出大模型赛道第一步;多所高校宣布将停用微信支付;沃尔沃宣布将接入特斯拉超级充电网络;TikTok将在美推出在线零售商店 菜鸟推出自营快递「菜鸟速递」 6 月 28 日消息&am…

信号链噪声分析3

目录 概要 整体架构流程 技术名词解释 技术细节 3.计算每个信号链模块的等效噪声带宽(ENB) 4.计算各个模块在信 号链输出端的噪声贡献 增益模块 信号滤波器 ADC 驱动放大器电阻 驱动放大器 RC 滤波器 小结 概要 提示:这里可以添加技术概要 本文介绍对高速宽带宽信号…

计算机组成原理(期末或考研备考)-计算机性能指标(字长,主存容量,吞吐量,主频和时钟周期)

字长:字长是指计算机进行一次整数运算所能处理的二进制数据的位数,通常与CPU寄存器大小相同,因为数据进入到CPU之前会放入寄存器中。 主存大小:通常使用字数字长,例如512K*16位就表示共有512K个存储单元,每…

VSCode编译器环境下,调试3d-tiles-validator

VSCode编译器环境下,调试3d-tiles-validator 1. 源代码环境准备2. VsCode环境装备3. 调试 1. 源代码环境准备 参照3d-tiles-validator仓库的README.md文件 Clone the repository into the current directory:git clone https://github.com/CesiumGS/3d-tiles-vali…

手势识别系统Python,基于卷积神经网络算法

一、介绍 手势识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Django框架,开发网页端操作平台,…

Kubernetes(k8s)容器编排数据存储

目录 1 什么是数据卷1.1 存储卷概述1.2 存储卷类型1.2.1 非持久性存储1.2.2 网络连接性存储1.2.3 分布式存储1.2.4 云端存储 2 emptydir2.1 使用场景2.2 使用示例2.2.1 案例说明2.2.2 创建资源清单2.2.3 创建deploy2.2.4 访问测试 2.3 测试存储卷2.3.1 登录sidecar2.3.2 登录ng…

如何获取科技项目验收测试报告,有什么作用?

科技项目验收测试报告是科技项目验收的重要文件,它对项目的开发过程和测试结果进行了全面的总结和评估。获取科技项目验收测试报告可以帮助项目组了解项目的测试情况和可靠性,从而对项目的质量进行评估和提升。本文将介绍如何获取科技项目验收测试报告&a…