使用池化数据源配置DAO工厂

时间:2011-01-06 21:11:31

标签: java factory dao

关于使用池化数据源配置DAO工厂的一些建议。假设它的JDBC DAO工厂(来自抽象工厂)和池化数据源由应用服务器配置和管理,例如, Glassfish

首次创建工厂时(Singleton模式),它为池化数据源执行JNDI查找,例如从属性文件,它将在JDBC DAO工厂上设置池数据源。

然后,当你实例化并返回具体的DAO时,你会传递一个对datasource的引用,以便它可以检索到数据库的连接吗?

1 个答案:

答案 0 :(得分:0)

基本上我所做的是将该数据源封装为名为DAO的基类中的字段。在DAO的构造函数中,传入所需连接的JNDI名称。

public DAO(String jndiName) throws NamingException {
  ds = DataSourceFactory.getInstance().lookup(jndiName);
}

然后在所有具体类中,您只需从DAO扩展并可以根据需要使用数据源。

public concreteDAO() throws NamingException {
  super("Some JNDI Name That this DAO should know");
}

相同的DAO类还有一些其他实用程序方法,如清理方法,可以静默关闭ResultSet,Statements和Connections。所以我只需要在我所有方法的finally子句中添加它。