您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

nodejs连接mysql——createPool&createConnection区别

bubuko 2022/1/25 20:07:14 mysql 字数 3593 阅读 958 来源 http://www.bubuko.com/infolist-5-1.html

createConnection 建立连接&关闭连接 语法 (1)createConnection方法创建连接对象(正式的说法:使用createConnection方法创建一个表示与mysql数据库服务器之间连接的connection对象) (2)用对象的connect方法建立连接。 (3)关闭连接 ...

createConnection 建立连接&关闭连接

语法

(1)createConnection方法创建连接对象(正式的说法:使用createConnection方法创建一个表示与mysql数据库服务器之间连接的connection对象)

var connection = mysql.createConnection(options);?

(2)用对象的connect方法建立连接。

connection.connect(function(err) { *** });?

(3)关闭连接:connection对象的end方法和destory方法。

connection.end(function(err) { *** });?
connection.destroy();

完整示例

var?connection?=?mysql.createConnection({
????host:?'localhost',
????port:?3306,
????user:?'root',
????password:?'123456',
????database:?'test'
});

// 连接
connection.connect(function?(err)?{
????if?(err)?{
????????console.log('[query]?-?:'?+?err);
????????return;
????}
????console.log('[connection?connect]??succeed!');
});

// 查询数据
connection.query('SELECT?1?+?1?AS?solution',?function?(error,?results,?fields)?{
????if?(error)?throw?error;
????console.log('The?solution?is:?',?results[0].solution);
});

//关闭连接
connection.end(function?(err)?{
????if?(err)?{
????????return;
????}
????console.log('[connection?end]?succeed!');
});

createPool 创建连接池

在开发web应用程序时,连接池是一个很重要的概念。建立一个数据库连接所消耗的性能成本是很高的。在服务器应用程序中,如果为每一个接收到的客户端请求都建立一个或多个数据库连接,将严重降低应用程序性能。

?因此在服务器应用程序中通常需要为多个数据库连接创建并维护一个连接池,当连接不再需要时,这些连接可以缓存在连接池中,当接收到下一个客户端请求时,从连接池中取出连接并重新利用,而不需要再重新建立连接。

语法

(1)创建连接池 createPool方法

var pool = mysql.createPool(optioins);

options参数包含createConnection方法中可以使用的各种属性,除此之外还有以下属性:createConnection,waitForConnections,connectionLimit,queueLimit。

(2)从连接池中取出连接。getConnection方法。如无连接可用则隐式的建立一个数据库连接。

pool.getConnection(function(err,connection))

回调函数中的err为错误对象,connection为获取到的连接对象。

(3)当连接不再使用时,用connection对象的release方法将其归还到连接池中。

connection.release();

(4)当一个连接不再需要使用且需要从连接池中移除时,用connection对象的destroy方法。

connection.destroy(); 

连接移除后,连接池中的连接数减一。

(5)当一个连接池不再需要使用时,用连接池对象的end方法关闭连接池。

pool.end();

完整示例

var?pool?=?mysql.createPool({
????host:?'localhost',
????port:?3306,
????user:?'root',
????password:?'123456',
????database:?'test'
});
pool.getConnection(function(err,?connection)?{
????if(err){
????????console.log("建立连接失败");
????}?else?{
????????console.log("建立连接成功");
????????console.log(pool._allConnections.length);?//??1
????????connection.query('select?*?from?user',?function(err,?rows)?{
????????????if(err)?{
????????????????console.log("查询失败");
????????????}?else?{
????????????????console.log(rows);
????????????}
????????????//?connection.destory();
????????????console.log(pool._allConnections.length);??//?0
????????})
????}
????pool.end();
})

本文连接:https://www.cnblogs.com/xsilence/p/12444228.html

nodejs连接mysql——createPool&createConnection区别

原文:https://www.cnblogs.com/xsilence/p/12444228.html


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶