安裝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); }) })
。