我正在学习有关JDBC
连接池,这听起来很容易用JNDI
得到DataSource
实例:如何处理连接池和DAO?
DataSource ds = (DataSource)ctx.lookup("jdbc/myDB");
所有我发现显示教程此代码只有一个对象,但我的问题是如何使用DataSource
当我有几个DAO
对象需要从数据库中获取数据。
它是确定对每一个新
DAO
对象的构造函数中使用上面的代码,用于连接池?我认为每次都会返回相同的DataSource
,就像Dictionary Singleton会做的一样,持有一个DataSource
并返回它,或者我错了,每次都会返回一个不同的DataSource
并使用不同的池,从而破坏我的目的?我应该认为
DataSource
在辛格尔顿和只运行JNDI
搜索一次或者是搜索开销忽略不计,这是一个愚蠢的优化?
你有没有试过https://commons.apache.org/proper/commons-dbcp/或https://brettwooldridge.github.io/HikariCP/?它们提供开箱即用的连接池功能,无需重新编写。对不起,可能不是你的问题的答案。只是想过让你知道。祝你好运! – harshavmb
我将使用tomcat 8内部的解决方案,但它根本不涉及这个问题,不过谢谢 – mFeinstein