nodejs連接mysql並執行sql語句,mysql連接池


安裝mysql模塊:

npm install mysql --save

 

來看個例子:

const mysql = require("mysql")

// mysql中的createConnection方法 可以創建連接
const conn = mysql.createConnection({
    host:"localhost",//連接地址
    user:"root",//用戶
    password:"123456",//密碼
    port:'3306',//端口
    database:"user_test",//要連接的數據庫
})

// 建立連接
conn.connect();

// 建立一個變量  存儲sql語句
let sql = 'select * from user';

// 連接 有一個query方法  用來執行sql語句
conn.query(sql,(err,result) => {
    if(err) throw err;
    console.log(result);
})

// 斷開/關閉鏈接   執行完sql語句就可以關閉連接
conn.end();

結果:

[
  RowDataPacket { id: 1, name: 'eric', city: '廣州', sex: 2 },
  RowDataPacket { id: 2, name: '小明', city: '北京', sex: 2 },
  RowDataPacket { id: 3, name: '小花', city: '上海', sex: 1 },
  RowDataPacket { id: 4, name: '小美', city: '深圳', sex: 1 },
  RowDataPacket { id: 5, name: '小小', city: '北京', sex: 1 },
  RowDataPacket { id: 6, name: '小小2', city: '廣州', sex: 1 },
  RowDataPacket { id: 9, name: '小小', city: '北京', sex: 1 },
  RowDataPacket { id: 10, name: '小小', city: '北京', sex: 1 },
  RowDataPacket { id: 11, name: '小花', city: '北京', sex: 1 }
]

 

另外,sql語句傳參的方式

const mysql = require("mysql")

// mysql中的createConnection方法 可以創建連接
const conn = mysql.createConnection({
    host:"localhost",//連接地址
    user:"root",//用戶
    password:"123456",//密碼
    port:'3306',//端口
    database:"user_test",//要連接的數據庫
})

// 建立連接
conn.connect();

// 建立一個變量  存儲sql語句 ?是一個占位符 用來傳參
let sql = 'select * from user where id = ?';

// 連接 有一個query方法  用來執行sql語句  如果傳參就要啟用第二個參數 第二個參數如果是單個可以直接傳字符串 多個就用數組 我們這里直接用數組
conn.query(sql,[10],(err,result) => {
    if(err) throw err;
    console.log(result);
})

// 斷開/關閉鏈接   執行完sql語句就可以關閉連接
conn.end();

結果:

[ RowDataPacket { id: 10, name: '小小', city: '北京', sex: 1 } ]

 

以上的方式每一個用戶都會建立一個連接,如果用戶少還可以,如果高達上百萬,那么對應創建上百萬的連接,這對系統是一個很大的開銷,那么mysql連接池可以解決這樣的問題:

 

 

連接池的使用:

const mysql = require("mysql")

// 創建連接池
const pool = mysql.createPool({
    connectionLimit:10,//同時創建連接的最大連接數
    host:"localhost",//連接地址
    user:"root",//用戶
    password:"123456",//密碼
    port:'3306',//端口
    database:"user_test",//要連接的數據庫
})

// 連接池有一個方法是 getConnection
pool.getConnection((err,conn) => {
    // 第二個參數 conn就是是獲取到的連接
    if(err) throw err;
    // 建立一個sql語句
    let sql = 'select * from user where id = ?';
    // 執行sql語句
    conn.query(sql,[10],(err,result) => {
        // 不管是否 報錯  首先將連接 釋放掉
        conn.release()
        if(err) throw err;
        console.log(result);
    })
})

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM