node.js对数据库的操作 之 query(查询)与pool(连接池)

一、Query(查询)

(1)意义

query是指向数据库发送的一个命令或请求,以检索、更新、插入或删除数据。它是一个具体的SQL语句或NoSQL命令,用于从数据库中获取或修改数据。

(2)用途

通过查询,你可以从数据库中检索信息,例如获取用户列表、查找特定记录等。你也可以使用查询来更新或删除数据库中的数据。

(3)代码示例:(以查询为例)

先在mysql里面建立一个users表,如下:

 vscode连接数据库进行query操作来查询 如下:
//1.安装mysql 
// 在控制台 npm install mysql -save
// 2.导入mysql模块
const mysql=require('mysql');
// 3.建立链接
// (3-1)创建链接对象
const conn=mysql.createConnection({
    host:'localhost', //mysql服务器地址
    port:3306, //mysql默认端口3306
    user:'root', //mysql登录用户名
    password:'root', //mysql登录密码
    database:'musicdb', //访问的数据库名称
    multipleStatements:true, //设置一次请求允许多条sql语句同时执行。默认false
});
// (3-2)链接数据库
conn.connect((err)=>{
    if(err){
        console.log('链接数据库失败');
    }else{
        console.log('链接数据库成功');
    }
});
// 4.执行sql语句,对数据库进行操作
// (4-1)准备sql语句
let sql2="select * from users"; //通过*把users表中所有数据查询出来

// (4-2)执行sql
conn.query(sql2,[],(err,results,fields)=>{ //三个参数,sql语句、sql给出的数据、回调函数(err,results[sql语句执行的结果],fields[涉及到的字段列表])
    if(err){
        console.log(err);
    }else{ 
        console.log(results); //RowDataPacket对象数组
        // (4-3)关闭数据库
        conn.end()
    }
}); 
控制台输出:

 

二、Pool(连接池): 

(1)意义

连接池是一个存储数据库连接的对象池。当应用程序需要与数据库交互时,它可以从池中获取一个连接,使用完毕后将其返回给池,而不是每次都创建新的连接。

(2)用途

连接池主要用于提高性能和效率。创建和关闭数据库连接是一个昂贵的操作,特别是在高并发的环境中。使用连接池可以避免频繁地创建和关闭连接,从而提高应用程序的响应速度和吞吐量。

 (3)代码示例:(以查询为例)

先在mysql里面建立一个users表,如下:

 vscode连接数据库进行pool连接池操作来查询 如下:
// pool.js  连接池管理连接对象
// 1.导入mysql模块
const mysql=require('mysql');
// 2.创建连接池对象(创建连接对象,且自动的去管理连接对象的状态)
const pool=mysql.createPool({
    host:'localhost',
    port:3306,
    user:'root',
    password:'root',
    database:'musicdb',
    multipleStatements:true
});
// 3.从连接池中获取连接对象
pool.getConnection((err,conn)=>{ //err错误对象 conn连接对象
    if(err){
        console.log(err);
    } else{
        // 4.利用连接对象操作数据库
        let sql='select * from users;';
        conn.query(sql,[],(err1,results,fields)=>{//执行数据库操作
            if(err1){
                console.log(err1);
            }else{
                console.log(results);
            }
            // 5.释放连接对象
            conn.release();
        })
    }

});
控制台输出:

 

三、query与pool的异同

(1)相同点: 

query查询和pool连接池都是数据库操作

(2)不同点: 

使用pool连接池时,你的应用程序会在启动时创建一个连接池,并在需要时从池中获取连接。当连接不再需要时,它会被返回到池中,而不是被关闭。这样,你的应用程序可以重复使用已经存在的连接,而不是每次都创建新的连接。使用pool连接池大大提高了性能,特别是在处理大量并发请求时。

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Node.js数据库操作是通过连接对象或连接池的方式进行的。通过创建连接对象,配置相应的参数,然后使用connect()方法连接数据库,再使用query()方法执行相应的SQL语句操作数据库。最后使用end()方法关闭连接。使用连接池方式是官方推荐的方法,可以提高性能和效率。通过创建连接池对象,配置相应的参数,然后通过getConnection()方法从连接池中获取连接对象,再使用query()方法执行相应的SQL语句操作数据库。最后使用release()方法将连接释放回连接池。 示例代码如下: ``` // 使用连接对象方式 var mysql = require('mysql'); var connection = mysql.createConnection({ host: 'localhost', user: 'root', password: 'nfq123456', database: 'udata' }); connection.connect(); connection.query('select * from user', function(error, results, fields) { if (error) throw error; console.log('The solution is: ', results); }); connection.end(); // 使用连接池方式 var mysql = require('mysql'); var pool = mysql.createPool({ host: 'localhost', user: 'root', password: 'rootroot', database: 'myblog', port: '3306' }); pool.getConnection(function(err, connection) { if (err) throw err; // 执行相应的SQL语句操作数据库 connection.query('select * from userlist', function(err, rs) { if (err) throw err; for (var i = 0; i < rs.length; i++) { console.log('id:', rs[i].id, 'name:', rs[i].name, 'age:', rs[i].age, 'sex:', rs[i].sex); } connection.release(); // 释放连接 }); }); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想想aw

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值