欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Express連接MySQL及數(shù)據(jù)庫連接池技術(shù)實(shí)例

 更新時間:2022年02月17日 09:58:20   作者:六葉草~  
數(shù)據(jù)庫連接池是程序啟動時建立足夠數(shù)量的數(shù)據(jù)庫連接對象,并將這些連接對象組成一個池,由程序動態(tài)地對池中的連接對象進(jìn)行申請、使用和釋放,本文重點(diǎn)給大家介紹Express連接MySQL及數(shù)據(jù)庫連接池技術(shù),感興趣的朋友一起看看吧

Express連接MySQL

準(zhǔn)備工作

打開webstorm新建項(xiàng)目選擇express創(chuàng)建一個express項(xiàng)目。

創(chuàng)建成功后其頁面如下:

為了連接mysql數(shù)據(jù)庫還需要導(dǎo)入mysql模塊。

創(chuàng)建配置文件

在項(xiàng)目中創(chuàng)建config文件,在config文件中創(chuàng)建congfigdb.js文件用來連接數(shù)據(jù)庫,在文件中寫入:

var mysql = {
    host: "127.0.0.1",//這是數(shù)據(jù)庫的地址
    user: "root",//需要用戶的名字
    password: "root23",//用戶密碼 ,如果你沒有密碼,直接雙引號就是
    database: "info",//數(shù)據(jù)庫名字
    port:3306//數(shù)據(jù)庫使用的端口號
}
module.exports = mysql;//用module.exports暴露出這個接口

創(chuàng)建操作數(shù)據(jù)庫的接口文件

const express = require('express');
const router = express.Router();
//導(dǎo)入MySQL 模塊
const mysql = require('mysql');
//導(dǎo)入配置文件
const db = require('../config/configdb');

router.get('test',(req,res)=>{
    //創(chuàng)建數(shù)據(jù)庫連接對象
    let conn = mysql.createConnection(db);
    //查詢bookinfo中所有數(shù)據(jù)
    conn.query('select * from student',(err,results,fieldes)=>{
        //fieldes表示具體的字段
        if(err){
            throw err;
        }
        res.send(results);
    })
    //關(guān)閉數(shù)據(jù)庫鏈接
    conn.end((err)=>{
        console.log(err);
})
module.exports = router;

完成之后在app.js文件中添加:

var dbRouter = require('./routes/option')
app.use('/db',dbRouter);

在Postman中測試如下:

數(shù)據(jù)庫連接池技術(shù)

什么是數(shù)據(jù)庫連接池

數(shù)據(jù)庫連接池是程序啟動時建立足夠數(shù)量的數(shù)據(jù)庫連接對象,并將這些連接對象組成一個池,由程序動態(tài)地對池中的連接對象進(jìn)行申請、使用和釋放。

數(shù)據(jù)庫連接池的作用是什么?

數(shù)據(jù)庫的連接池負(fù)責(zé)分配、管理和釋放數(shù)據(jù)庫連接對象的。它允許應(yīng)用程序重復(fù)使用一個現(xiàn)有的數(shù)據(jù)庫的連接對象。而不是重新創(chuàng)建一個。

數(shù)據(jù)庫連接池技術(shù)實(shí)例

1、導(dǎo)入mysql模塊

var mysql = require('mysql'); 

2、創(chuàng)建數(shù)據(jù)庫連接池

創(chuàng)建連接池

var pool = mysql.createPool(options);

options 參數(shù)是一個對象,該對象中有很多屬性配置,該對象的作用是用于指定該連接池中連接統(tǒng)一使用的各種選項(xiàng)。

//創(chuàng)建數(shù)據(jù)庫連接池
const pool = mysql.createPool({
    connectionLimit:20,
    host:'localhost',
    port:3306,
    user:'root',
    password:'123456',
    database:'info'
})
//導(dǎo)出數(shù)據(jù)庫連接池對象
module.exports = pool;

connectionLimit:用于指定連接池中最大的鏈接數(shù),默認(rèn)屬性值為10.
queueLimit:用于指定允許掛起的最大連接數(shù),如果掛起的連接數(shù)超過該數(shù)值,就會立即拋出一個錯誤,默認(rèn)屬性值為0.代表不允許被掛起的最大連接數(shù)。
multipleStatements :是否允許執(zhí)行多條sql語句,默認(rèn)值為false
host:數(shù)據(jù)庫服務(wù)器的地址
user:連接數(shù)據(jù)庫的用戶名
password:連接數(shù)據(jù)庫的密碼
database:數(shù)據(jù)庫名

3、獲取數(shù)據(jù)庫鏈接對象

pool.getConnection((err, conn) => {
    if (err) {
        console.log(err)
    } else {
        let sql = 'select * from bookinfo';
        conn.query(sql, (err, results) => {
            if (err) {
                console.log(err)
            } else {
                res.send(results);
                conn.release();
            }
        })
    }
})

4、釋放數(shù)據(jù)庫連接對象

conn.release();

完整實(shí)例

const express = require('express');
const pool = require('../config/dbmysql');

const router = express.Router();
/*
* http://localhost:3000/dbmysql/books
* */
router.get('/books',(req,res)=>{
    //從數(shù)據(jù)庫連接池中獲取數(shù)據(jù)庫連接對象
    pool.getConnection((err,conn)=>{
        if(err){
            console.log(err)
        }else {
            let sql = 'select * from bookinfo';
            conn.query(sql,(err,results)=>{
                if (err) {
                    console.log(err)
                }else {
                    res.send(results);
                    conn.release();
                }
            })
        }
    })
})
module.exports = router;

結(jié)果測試:

到此這篇關(guān)于Express連接MySQL及數(shù)據(jù)庫連接池技術(shù)的文章就介紹到這了,更多相關(guān)Express連接mysql內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySql數(shù)據(jù)庫備份的幾種方式

    MySql數(shù)據(jù)庫備份的幾種方式

    這篇文章主要介紹了MySql數(shù)據(jù)庫備份的幾種方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Mysql案例之GROUP_CONCAT函數(shù)的具體使用

    Mysql案例之GROUP_CONCAT函數(shù)的具體使用

    本文詳細(xì)的介紹了MySQL中學(xué)生與學(xué)科多對多關(guān)聯(lián)場景下的排序問題,通過GROUP_CONCAT函數(shù)結(jié)合左連接和分組,一次性獲取每個學(xué)生首個學(xué)科名稱并排序,感興趣的可以了解一下
    2025-05-05
  • MySQL的查詢緩存機(jī)制基本學(xué)習(xí)教程

    MySQL的查詢緩存機(jī)制基本學(xué)習(xí)教程

    這篇文章主要介紹了MySQL的查詢緩存機(jī)制基本學(xué)習(xí)教程,默認(rèn)針對InnoDB存儲引擎下來將,需要的朋友可以參考下
    2015-11-11
  • MySql約束超詳細(xì)介紹

    MySql約束超詳細(xì)介紹

    MySQL唯一約束(Unique?Key)是指所有記錄中字段的值不能重復(fù)出現(xiàn)。例如,為?id?字段加上唯一性約束后,每條記錄的?id?值都是唯一的,不能出現(xiàn)重復(fù)的情況
    2022-09-09
  • 詳解MySQL的sql_mode查詢與設(shè)置

    詳解MySQL的sql_mode查詢與設(shè)置

    這篇文章主要介紹了詳解MySQL的sql_mode查詢與設(shè)置,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Mysql表連接的誤區(qū)與原理詳析

    Mysql表連接的誤區(qū)與原理詳析

    在使用MySQL數(shù)據(jù)庫過程中,left?join?基本是必用的語法,下面這篇文章主要給大家介紹了關(guān)于Mysql表連接的誤區(qū)與原理的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • MySQL學(xué)習(xí)之事務(wù)與并發(fā)控制

    MySQL學(xué)習(xí)之事務(wù)與并發(fā)控制

    這篇文章主要介紹了MySQL中的事務(wù)與并發(fā)控制,一個事務(wù)可以理解為一組操作,這一組操作要么全部執(zhí)行,要么全部不執(zhí)行,想了解更多的小伙伴,可以參考閱讀本文
    2023-03-03
  • MySQL三大日志之binlog、redoLog、undoLog詳細(xì)講解

    MySQL三大日志之binlog、redoLog、undoLog詳細(xì)講解

    這篇文章主要介紹了MySQL三大日志之binlog、redoLog、undoLog的相關(guān)資料,,binlog是MySQL服務(wù)層的日志,記錄數(shù)據(jù)庫執(zhí)行的寫入性操作,redoLog是InnoDB存儲引擎層的日志,記錄數(shù)據(jù)頁的變更,undoLog也是InnoDB存儲引擎層的日志,記錄數(shù)據(jù)的邏輯變化,需要的朋友可以參考下
    2025-02-02
  • mysql5.7.42到mysql8.2.0的升級(rpm方式)

    mysql5.7.42到mysql8.2.0的升級(rpm方式)

    隨著數(shù)據(jù)量的增長和業(yè)務(wù)需求的變更,我們可能需要升級MySQL,本文主要介紹了mysql5.7.42到mysql8.2.0的升級(rpm方式),具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • MHA實(shí)現(xiàn)mysql主從數(shù)據(jù)庫手動切換的方法

    MHA實(shí)現(xiàn)mysql主從數(shù)據(jù)庫手動切換的方法

    這篇文章主要介紹了MHA實(shí)現(xiàn)mysql主從數(shù)據(jù)庫手動切換的方法,詳細(xì)的講述了主從數(shù)據(jù)庫切換的步驟與方法,非常實(shí)用,需要的朋友可以參考下
    2014-10-10

最新評論