1

我正在使用 NetBeans 和 Tomcat 7 创建一个 Web 应用程序,并且我想创建我的第一个连接池。我在这里遵循了tomcat文档中的所有步骤:http: //tomcat.apache.org/tomcat-7.0-doc/jndi-datasource-examples-howto.html

但是在我的应用程序中,我将有许多 DAO 对象,每个对象都有许多不同的方法,所以我想避免编写代码来查找数据源并在每个访问数据库的方法中获取连接,所以我我们创建了一个类来集中该操作并返回到不同 DAO 对象的连接。

你可以看到下面的代码,但正如我所说,这是我第一次使用这个,所以我不确定......这对你有意义吗?有没有更好的方法来做这样的事情?还是最好在每种方法中编写此代码?

如果这确实有意义,我可以使用 Context 甚至 DataSource 作为静态属性来避免连续查找吗?

非常感谢!

我的 ConnectionPool 类:

package dao.mysql;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import org.apache.tomcat.jdbc.pool.DataSource;


public class ConnectionPool {

    public static Connection getConnection() {
        Connection connection = null;
        try {            
            Context initCtx = new InitialContext();
            Context envCtx = (Context) initCtx.lookup("java:comp/env");
            DataSource ds = (DataSource)envCtx.lookup("jdbc/EmployeeDB");

            connection = ds.getConnection();

        } catch (SQLException ex) {
            Logger.getLogger(ConnectionPool.class.getName()).log(Level.SEVERE, null, ex);
        } catch (NamingException ex) {
            Logger.getLogger(ConnectionPool.class.getName()).log(Level.SEVERE, null, ex);
        }
        return connection;
    }
}
4

1 回答 1

1

您可以将 JDBC 连接池用作本文所述的单例 bean。

于 2012-12-10T15:10:32.173 回答