zoukankan      html  css  js  c++  java
  • 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);
        })
    })

  • 相关阅读:
    十,Geoserver监测(/monitoring)
    九,Geoserver图层(/layers)
    七,Geoserver字体(/fonts)
    六,Geoserver特征类型(/featuretypes)
    五,Geoserver栅格数据仓库(/coveragestores)
    四,Geoserver栅格数据仓库(/coveerages)
    八,Geoserver图层组(/layergroups)
    三,Geoserver矢量数据仓库(/datastores)
    二,Geoserver服务器系统状态(/about/system-status)
    一,关于Geoserver内核信息(/about/manifests)
  • 原文地址:https://www.cnblogs.com/fqh123/p/13199062.html
Copyright © 2011-2022 走看看