配置了多个数据源,实际运行却总是指向其中的一个数据源?
我配置了两个数据源:
var ioc = { dataSource: { type: "org.logicalcobwebs.proxool.ProxoolDataSource", fields: { driver: 'com.mysql.jdbc.Driver', driverUrl: 'jdbc:mysql://127.0.0.1:3306/x?useUnicode=true&characterEncoding=utf-8', user: 'root', password: '' } }, dataSource2: { type: "org.logicalcobwebs.proxool.ProxoolDataSource", fields: { driver: 'oracle.jdbc.driver.OracleDriver', driverUrl: 'jdbc:oracle:thin:@127.0.0.1:1521:xe', user: 'xx', password: '' } } };
但是好像两个数据源都指向了mysql数据库,测试代码如下:
Ioc ioc = new NutIoc(new JsonLoader("ioc/dao.js")); DataSource dSource2 = ioc.get(null,"dataSource2"); DataSource dSource = ioc.get(null,"dataSource"); System.out.println(dSource.getConnection().getMetaData().getDatabaseProductName()); System.out.println(dSource2.getConnection().getMetaData().getDatabaseProductName());
最后都打印了MySql,但是两个数据源确实是实例化了两个不同的对象,请问这是为什么呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
确实是这个配置文件,我把org.logicalcobwebs.proxool.ProxoolDataSource替换为SimpleDataSource就打印正常。
那就别用proxool了,用druid吧
嗯,试了一下,druid可以。非常感谢! proxool为什么不行呢?目前所有的项目用的都是proxool。
回复
从不用这货,不清楚
如果这是两个不同的实例(dSource2和dSource) ,那就不是nutz的问题了
常见原因是: 你以为加载了配置文件A,但实际上是配置文件B