私たちはJava SEアプリケーションを開発しており、Hibernateを使用してデータベースと通信しています。私のデータベースはOracle 11g Express Editionです。これまではアプリケーションで接続プールを使用していませんでした。しかし、以前はc3p0接続プールを使っていましたが、実際にはそれをよく理解していませんでした。Java SEアプリケーションでConnectionプールを使用する際の長所と短所は何ですか?
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
ええ、Java SEアプリケーションは一度に複数の接続を持つ必要がありますか? – Chan
一度に複数のユーザーがいますか? – bdares