我正在尝试使用generic-pool包在Node js中创建数据库连接池.使用单个数据库,池工作正常,但我想在单个池中使用多个数据库.在这种情况下,我面临着一个问题.通用池不会为单个池中的数据库创建池.以下是我的代码.我正在使用trireme-jdbc for JDBC connection ang-pool for connection pooling.
var Pool = require('C:JCI/trireme-jdbc/node_modules/generic-pool').Pool;
var jdbc = require('C:/Program Files/nodejs/node_modules/trireme-jdbc');
var configOpenedge = require('C:/Program Files/nodejs/node_modules/trireme-jdbc/testconf/config-openedge.js');
var configPostgre = require('C:/Program Files/nodejs/node_modules/trireme-jdbc/testconf/config-postgre.js');
var pool = new Pool({
name : 'Anil-JCI',
create : function(callback) {
var connOpenedge = new jdbc.Database({
url : configOpenedge.url,
properties : configOpenedge.properties,
});
var connPostgre = new jdbc.Database({
url : configPostgre.url,
properties : configPostgre.properties,
/*
* minConnections : 1, maxConnections : 2000, idleTimeout : 60
*/
});
callback(null, connOpenedge);
},
destroy …Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,我将IBM DB2数据库作为存储,并且我的数据服务层已使用Node.js实现.我已使用db2.jar通过Progress给出的DataDirect方法建立了与IBM DB2 iSeries数据库的JDBC连接.当我执行任何选择查询时,从DB返回的结果是十六进制值不是我想要的正确值.为了解决这个问题,我可以选择在每个列的查询级别使用CAST函数,但这不是很有效,因为我必须在每列中应用此CAST,所以我试图在连接级别使用通用解决方案,以便我不必像JTOpen中的"translate binary = true"那样在每一列中应用此强制转换.
以下是选择查询的结果 -
Without CAST function :
Query = SELECT poMast.ORDNO from AMFLIBL.POMAST AS poMast WHERE poMast.ORDNO = 'P544901'
Result in Hex format = D7F5F4F4F9F0F1
With CAST function :
Query = SELECT CAST(poMast.ORDNO CHAR(7) CCSID 37) AS ORDNO from AMFLIBL.POMAST AS poMast WHERE poMast.ORDNO IS NOT NULL
Result in proper format = P544901
Connection URL = "jdbc:datadirect:db2://hostname:port;DatabaseName=dbname;"
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激.