【发布时间】:2017-10-26 20:31:16
【问题描述】:
我正在学习JDBC 连接池,使用JNDI 获得DataSource 实例听起来相对容易:
DataSource ds = (DataSource)ctx.lookup("jdbc/myDB");
我发现的所有教程仅在一个对象中显示此代码,但我的问题是当我有多个需要从数据库中获取数据的 DAO 对象时如何使用 DataSource。
可以在每个新的
DAO对象的构造函数上使用上面的代码进行连接池吗? 我认为每次都会返回相同的DataSource,就像字典一样单身人士会这样做,持有一个DataSource并返回它,或者我错了,它会每次返回不同的DataSource并使用不同的池,从而违背我的目的吗?-
我应该在 Singleton 中保留
DataSource并且只运行一次JNDI搜索,还是搜索开销可以忽略,这是一个愚蠢的优化?
【问题讨论】:
-
你试过commons.apache.org/proper/commons-dbcp或brettwooldridge.github.io/HikariCP吗?它们提供开箱即用的连接池功能,无需从头开始重写。抱歉,可能无法回答您的问题。只是想到让你知道。祝你好运!
-
我会使用tomcat 8里面的解决方案,但是和问题完全没有关系,不过还是谢谢
标签: java datasource jndi connection-pooling