MySQL數(shù)據(jù)庫node使用詳解
1 MySQL查詢對象
2 MySQL查詢數(shù)組
3 mysql2庫介紹使用
4 mysql2預處理語句
5 mysql2連接池使用
6 mysql2的Promi
這里僅說明如何使用服務器連接數(shù)據(jù)庫并進行操作。
預處理語句就是可以輸入變量的語句(表現(xiàn)形式是有符號:?)。需要使用.execute來執(zhí)行;

需要運行普通的語句(不添加變量的語句)。就使用query。
預處理語句有很多好處,比如性能好、安全性(sql注入)。
如果連接的用戶很多,每次都創(chuàng)建數(shù)據(jù)庫的連接和銷毀連接會有影響,所以創(chuàng)建數(shù)據(jù)庫連接的時候我們可以使用連接池來做優(yōu)化
沒使用連接池的連接方法:

使用了連接池的方法:

需要下載相應的第三方庫才能讓node驅動數(shù)據(jù)庫:
npm install mysql2
準備數(shù)據(jù)-將json文件的數(shù)據(jù)插入到數(shù)據(jù)庫中
從phpne.json文件里面獲取json格式的數(shù)據(jù)并寫到數(shù)據(jù)庫里面。
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(全網(wǎng)通) ",
"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/全網(wǎng)通) ",
"price": 4488,
"score": 8.3,
"voteCnt": 103,
"url": "http://detail.zol.com.cn/cell_phone/index1207038.shtml",
"pid": "1207038"
},
{
"brand": "華為",
"title": "華為P20(全網(wǎng)通) ",
"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/全網(wǎng)通) ",
"price": 1999,
"score": 7,
"voteCnt": 9,
"url": "http://detail.zol.com.cn/cell_phone/index1222100.shtml",
"pid": "1222100"
}
]mysql2-基本使用
const mysql = require('mysql2')
// 1.創(chuàng)建一個連接(連接上數(shù)據(jù)庫)
const connection = mysql.createConnection({
host: 'localhost',
port: 3306,
database: 'music_db',
user: 'root',
password: 'Coderwhy123.'
})
// 2.執(zhí)行操作語句, 操作數(shù)據(jù)庫
const statement = 'SELECT * FROM `students`;'
// structure query language: DDL/DML/DQL/DCL
// query可以執(zhí)行DDL/DML/DQL/DCL的語句的代碼。返回的值在回調函數(shù)里面。
connection.query(statement, (err, values, fields) => {
if (err) {
console.log('查詢失敗:', err)
return
}
// 查看結果
console.log(values)
// console.log(fields)
})mysql2-預處理語句
const mysql = require('mysql2')
// 1.創(chuàng)建一個連接
const connection = mysql.createConnection({
host: 'localhost',
port: 3306,
database: 'music_db',
user: 'root',
password: 'Coderwhy123.'
})
// 2.執(zhí)行一個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.創(chuàng)建一個連接
const connectionPool = mysql.createPool({
host: 'localhost',
port: 3306,
database: 'music_db',
user: 'root',
password: 'Coderwhy123.',
// connectionLimit用來限制連接數(shù)量的
connectionLimit: 5
})
// 2.執(zhí)行一個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.創(chuàng)建一個連接
const connectionPool = mysql.createPool({
host: 'localhost',
port: 3306,
database: 'music_db',
user: 'root',
password: 'Coderwhy123.',
connectionLimit: 5
})
// 2.執(zhí)行一個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數(shù)據(jù)庫node使用的文章就介紹到這了,更多相關mysql node使用內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
mysql 本地數(shù)據(jù)庫如何從遠程數(shù)據(jù)庫導數(shù)據(jù)
mysql 本地數(shù)據(jù)庫如何從遠程數(shù)據(jù)庫導數(shù)據(jù),本文以此問題進行詳細介紹,需要了解的朋友可以參考下2012-11-11
Workbench通過遠程訪問mysql數(shù)據(jù)庫的方法詳解
這篇文章主要給大家介紹了Workbench通過遠程訪問mysql數(shù)據(jù)庫的相關資料,文中通過圖文介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。2017-06-06
MySQL BinLog如何恢復誤更新刪除數(shù)據(jù)
這篇文章主要介紹了MySQL BinLog如何恢復誤更新刪除數(shù)據(jù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06

