1

NetBeansとTomcat7を使用してWebアプリを作成していて、最初の接続プールを作成したいと思いました。ここでtomcatドキュメントのすべての手順を実行しました:http: //tomcat.apache.org/tomcat-7.0-doc/jndi-datasource-examples-howto.html

しかし、私のアプリケーションでは、それぞれ多くの異なるメソッドを持つ多くのDAOオブジェクトがあるので、データソースを検索し、DBにアクセスするすべてのメソッドで接続を取得するためのコードを記述したくないので、私はこの操作を一元化し、さまざまなDAOオブジェクトへの接続を返すクラスを作成しました。

以下のコードを見ることができますが、私が言ったように、これは初めてなので、よくわかりません...これはあなたにとって意味がありますか?そのようなことをするためのより良い方法はありますか?または、各メソッドでこのコードを記述したほうがよいでしょうか。

そして、これが理にかなっている場合、継続的なルックアップを回避するために、静的属性としてコンテキストまたはデータソースを使用できますか?

どうもありがとう!

私の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 に答える