1
我使用Hibernate 4.3.0以及MySQL和Tomcat。所有需要的庫都在類路徑中,這裏是一個hibernate.cfg.xml
:Hibernate需要的C3P0設置是什麼?
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="show_sql">false</property>
<property name="hbm2ddl.auto">update</property>
<property name="hibernate.connection.autocommit">false</property>
<property name="current_session_context_class">thread</property>
<property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
<!-- Disable the second-level cache -->
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<property name="hibernate.c3p0.min_size">5</property>
<property name="hibernate.c3p0.max_size">20</property>
<property name="hibernate.c3p0.max_statements">50</property>
<property name="hibernate.c3p0.timeout">3000</property>
<property name="hibernate.c3p0.idle_test_period">300</property>
通過以上的設置,20後與數據庫的連接應用程序沒有連接了,和餘did't找到關於這種行爲的信息應用程序日誌。
有誰知道什麼是錯的,以及我如何正確設置c3p0和hibernate?
這發生在不需要交易的操作上,據我所知。我更改了我的代碼以關閉工廠(和會話對象): 'SessionFactory factory = HibernateUtil.getSessionFactory(); Session hSession = factory.openSession(); Criteria count = hSession.createCriteria(UserTable.class); count.setProjection(Projections.rowCount()); long total =(long)count.uniqueResult(); hSession.close();工廠.close();' 但結果與以前一樣。 – andy007
HibernateUtil類可能有問題嗎? – andy007
您只需在應用程序關閉時關閉會話工廠,因爲在每次方法調用時創建的對象是一個昂貴的對象。試試我的建議。 –