我們正在開發一個Java SE應用程序,並且我正在使用Hibernate與數據庫進行通信。我的數據庫是Oracle 11g Express Edition。直到現在我還沒有在應用程序中使用連接池。但是我之前使用過c3p0連接池,但我從來沒有真正理解它。在Java SE應用程序中使用連接池有什麼優點和缺點?
在Java SE應用程序中使用c3p0有哪些優點和缺點?當涉及Java EE應用程序但Java SE時,我可以理解它的有用性嗎?
這是我對Hibernate的配置。
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:XE</property>
<property name="hibernate.connection.username">EP</property>
<property name="hibernate.connection.password">123</property>
<property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
<property name="hibernate.default_schema">EP</property>
<property name="show_sql">true</property>
<property name="hibernate.c3p0.min_size">5</property>
<property name="hibernate.c3p0.max_size">20</property>
<property name="hibernate.c3p0.timeout">300</property>
<property name="hibernate.c3p0.max_statements">50</property>
<property name="hibernate.c3p0.idle_test_period">3000</property>
<mapping class="app.model.User"></mapping>
</session-factory>
</hibernate-configuration>
建立連接是昂貴的,並且傳遞預先存在的連接而不是爲每個請求創建一個新的連接要便宜得多。 (你不會在乎你的數據庫是否有如此輕的負載,這並不重要。)請注意,我的答案與SE或EE無關,因爲問題與手頭上的問題無關。 – bdares 2012-03-18 02:25:22
是的,但是Java SE應用程序一次需要多個連接嗎? – Chan 2012-03-18 02:26:45
你會一次有超過1個用戶嗎? – bdares 2012-03-18 02:27:12