最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

Express連接MySQL

準備工作

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

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

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

創(chuà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();
//導入MySQL 模塊
const mysql = require('mysql');
//導入配置文件
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);
    })
    //關閉數(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ù)據(jù)庫連接池

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

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

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

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

1、導入mysql模塊

var mysql = require('mysql'); 

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

創(chuàng)建連接池

var pool = mysql.createPool(options);

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

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

connectionLimit:用于指定連接池中最大的鏈接數(shù),默認屬性值為10.
queueLimit:用于指定允許掛起的最大連接數(shù),如果掛起的連接數(shù)超過該數(shù)值,就會立即拋出一個錯誤,默認屬性值為0.代表不允許被掛起的最大連接數(shù)。
multipleStatements :是否允許執(zhí)行多條sql語句,默認值為false
host:數(shù)據(jù)庫服務器的地址
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();

完整實例

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;

結果測試:

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

相關文章

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

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

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

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

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

    MySQL的查詢緩存機制基本學習教程

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

    MySql約束超詳細介紹

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

    詳解MySQL的sql_mode查詢與設置

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

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

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

    MySQL學習之事務與并發(fā)控制

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

    MySQL三大日志之binlog、redoLog、undoLog詳細講解

    這篇文章主要介紹了MySQL三大日志之binlog、redoLog、undoLog的相關資料,,binlog是MySQL服務層的日志,記錄數(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è)務需求的變更,我們可能需要升級MySQL,本文主要介紹了mysql5.7.42到mysql8.2.0的升級(rpm方式),具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • MHA實現(xiàn)mysql主從數(shù)據(jù)庫手動切換的方法

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

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

最新評論

锦屏县| 西华县| 南召县| 江川县| 方城县| 左权县| 广州市| 昌宁县| 称多县| 通榆县| 尉氏县| 姚安县| 依兰县| 招远市| 毕节市| 开远市| 格尔木市| 大城县| 沈阳市| 宜都市| 开江县| 江川县| 清远市| 沙洋县| 郸城县| 洪泽县| 綦江县| 巴中市| 松阳县| 张家口市| 宣城市| 顺昌县| 姜堰市| 定襄县| 镇平县| 托克托县| 通河县| 苍梧县| 赤壁市| 龙胜| 牟定县|