获取池化JDBC DataSource的通用方法?

时间:2012-12-31 22:28:33

标签: java jdbc datasource connection-pooling

我正在尝试在我的应用程序中获取池化的JDBC DataSource。我正在编写一个开源库,并且希望尽可能地配置配置。我宁愿不使用JNDI或强制使用任何特定类型的配置文件。

现在,我这样做:

MysqlConnectionPoolDataSource ds = new MysqlConnectionPoolDataSource();
ds.setDatabaseName("blah");
ds.setUrl("jdbc:mysql://blaggablah");
ds.setUser("jimbob");
ds.setPassword("dweezil");

如果你想在将来使用MySQL以外的东西,显然不理想。

是否有某种通用的PooledDataSourceFactory需要一些参数,比如数据库类型和连接信息,并给我一个池化的数据源?

2 个答案:

答案 0 :(得分:1)

我不确定你正在创建什么样的应用程序(库?),但除非它是一个Web应用程序。堆栈或其他东西,你可以要求客户端程序员传入数据源,例如通过构造函数。这实际上是依赖注入的要点。

如果你的应用程序。 ,例如一个网络应用程序像Django一样堆栈,您仍然可以将内部数据源传递到中间件(a.k.a DI)。这种设计有利于模块化,并且可以在其他项目中轻松使用该部分代码。但是,您必须以某种方式从配置转到DataSource,因此在某些时候您需要确定它的机制(例如JNDI)。我认为这完全可以接受。

答案 1 :(得分:0)

您可以使用标准池/缓存库并让其使用配置它。像Apache Jakarta Pool,还是ehcache?