私は最初の接続プールを作成しようとしています。私はTomcat 7とMySQL DBを使ってJava Webアプリケーションを作成しています。可能な限り簡単な接続プールを作成したいと思います。 私はいくつかのチュートリアルを見てきましたが、私にとってはそれほど明確ではないので、うまくいくかどうか確認してください。JavaとTomcat 7の基本的なDB接続プール
私は、接続プール・マネージャとして次のクラスを書いている:
package dao.mysql;
import java.sql.Connection;
import java.sql.SQLException;
import org.apache.tomcat.jdbc.pool.DataSource;
import org.apache.tomcat.jdbc.pool.PoolProperties;
public class MySQLConnectionPool {
private static DataSource datasource;
private static String driver = "com.mysql.jdbc.Driver";
private static String url = "jdbc:mysql://localhost:3306/mydb";
private static String username = "user";
private static String password = "password";
public MySQLConnectionPool() {
datasource = new DataSource(configurePoolProperties(driver, url, username, password));
}
private PoolProperties configurePoolProperties(String driver, String url, String username, String password) {
PoolProperties properties = new PoolProperties();
properties.setDriverClassName(driver);
properties.setUrl(url);
properties.setUsername(username);
properties.setPassword(password);
return properties;
}
public static synchronized Connection getConnection() {
Connection connection = null;
try {
connection = datasource.getConnection();
} catch (SQLException ex) {
System.out.println("Error while getting a connection from the pool! \nSQL state:" + ex.getSQLState() + "\nMESSAGE" + ex.getMessage());
}
return connection;
}
}
は私が静的性質も同期についてはよく分かりません。
私はプールの "クライアント"クラスについてはわかりません。私は、彼らが唯一の
Connection con = MySQLConnectionPool.getConnection();
を使用して接続を取得し、最終的に
con.close();
を使用して、この接続を閉じて、それはそれだしなければなら理解できますか? また、これを行うためのより簡単な方法がありますか?
ありがとうございました!
DAOはDataSourceを管理*しません。単にそれを使用します。また、JavaEEチュートリアルを参照することもできます。http://docs.oracle.com/javaee/6/tutorial/doc/bncjj.html –
TomcatでJNDIデータソースとして接続プールを構成し、リソースのファクトリ属性'org.apache.tomcat.jdbc.pool.DataSourceFactory'ですが、クラスjavaからデータソースにアクセスする際のDataSource型は何ですか?私は 'org.apache.tomcat.jdbc.pool.DataSource'を使うか、' javax.sql.DataSource'(後者はリソースの 'type'属性の値です)でなければなりません。 – Sefran2