私は、Java Webアプリケーションを開発していますし、私はここで、Tomcatの接続プールを使用し、私の設定です:私は冬眠使いたいは同時にHibernateとTomcat Connectionプールを使用できますか?
public static Connection dbConnection() throws NamingException {
Context initContext;
DataSource ds = null;
Connection conn = null;
try {
initContext = new InitialContext();
Context envContext = (Context) initContext.lookup("java:/comp/env");
ds = (DataSource) envContext.lookup("jdbc/jdbcPool");
conn = ds.getConnection();
}catch (SQLException ex){
logger.error("SQLException Occurred in DAO.dbConnection() Method, Exception Message is: " + ex.getMessage(), ex);
}
catch (RuntimeException er){
logger.fatal("SQLException Occurred in DAO.dbConnection() Method, Exception Message is: " + er.getMessage(), er);
}catch(Exception rt){
logger.fatal("Exception Occurred in DAO.dbConnection() Method, Exception Message is: " + er.getMessage(), er);
}
return conn;
}
ので、私はいくつかの部分をリファクタリング:
<?xml version="1.0" encoding="UTF-8"?>
<Context path="" docBase="" debug="5" reloadable="true" crossContext="true">
<Resource name="jdbc/jdbcPool"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
username="root"
password="*******"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/dbname?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8"/>
</Context>
と私のDAO私のコードは、今私が知りたいのは私が私のアプリケーションでそれらの両方を使うことができるということです(私のコードの一部は休止状態を使用し、一部はDAO接続を使用することを意味します) もしそうなら、 hibernateでマッピングされていないものの、マップされたテーブルの中にはそれらと関係がありますか?
私はcontext.xmlで自分のJNDI設定を省略し、Quering DB(休止状態を使用したくない)を望むときに、休止状態のsessionFactoryから接続を取得することを意味しますか?共通のJDBC接続のように動作しますか? – Am1rr3zA
@gid理由を詳しく説明できますか? Hibernateは独自のトランスレーション管理を提供しています(つまり、JTAを使用しています)ので、接続が閉じられたとき、あるいはプールに戻ったときにどうして気になりますか?あなたが手動でHibernateがあなたのためにやることの多くをやっているようなものです。何か不足していますか? – ChssPly76
私は、接続設定(つまり、JNDIリファレンスや、ハイバネート設定からの接続への他の参照) –