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;
}
}