繁体   English   中英

获取池JDBC DataSource的通用方法?

[英]Generic way to get pooled JDBC DataSource?

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

现在,我这样做:

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

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

是否有某种通用的PooledDataSourceFactory可以接受一些参数,例如数据库类型和连接信息,并给我一个池化的DataSource?

我不确定您要创建哪种类型的应用程序(库?),但是除非它是一个Web应用程序。 堆栈之类的东西,您可以要求客户端程序员例如通过构造函数传入数据源。 这确实是依赖注入的要点。

如果您的应用程序。 例如网络应用。 像Django这样的堆栈,您仍然可以做到这一点,以便您在内部将数据源传递给中间件(又名DI)。 这样的设计促进了模块化,并使得在其他项目中易于使用该部分代码。 但是,您必须以某种方式从配置转到DataSource,因此在某个时候,您需要确定其实现的机制(例如JNDI)。 我认为这完全可以接受。

您可以使用标准的缓冲池/缓存库,并让用户对其进行配置。 像Apache Jakarta Pool还是ehcache?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM