Hibernate接続プールの構成(hibernateとhibernate+spring)
1.Hibernateデフォルト接続プール
2 .C 3 P 0接続構成//spring+hibernate 1.c 3 p 02をダウンロードします.パッケージ3をインポートする.c 3 p 0データベース接続プール4をSpringで構成するには、をc 3 p 0に直接変更する構成を以下のようにすればよい.
以下の構成は、beanを参照するだけでよい基本構成パラメータ:initialPoolSize:Number of Connections a pool will try to acquire upon startup.Should be between minPoolSize and maxPoolSize接続プールの初期化時に取得したリンク数は、minPoolSizeとmaxPoolSizeの間のminPoolSize:Minimum number of Connections a pool will maintain at any given time.最小リンク数maxPoolSize:Maximum number of Connections a pool will maintain at any given time.最大接続数acquireIncrement:D e termines how many connections at a time c 3 p 0 will try to acquire when the pool is exhausted.現在の接続数が切れた場合、一度に取得した新しい接続数maxIdleTime:Seconds a Connection can remain pooled but unused before being discarded.Zero means idle connections never expire. 最大空き時間、単位は秒、無駄なリンクは時代遅れに回収されます
3.proxool接続プール//hibernate 1 proxoolのプロファイル、ファイル名:proxool.xml(一般的にhibernate.cfg.xmlファイルと同じディレクトリに格納されます)この例ではMYSQLデータベースを構成し、データベースの名前はschoolprojectです.
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-configuration ...">
<hibernate-configuration>
<session-factory >
<!—JDBC -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<!-- URL-->
<property name="connection.url">jdbc:mysql://localhost:3306/schoolproject </property>
<!-- -->
<property name="connection.username">root</property>
<!— -->
<property name="connection.password"></property>
<!-- -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property> <!-- Student -->
<mapping resource="com/wqbi/model/pojo/student.hbm.xml" /> </session-factory>
</hibernate-configuration>
2 .C 3 P 0接続構成//spring+hibernate 1.c 3 p 02をダウンロードします.パッケージ3をインポートする.c 3 p 0データベース接続プール4をSpringで構成するには、
<bean id="DataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="oracle.jdbc.driver.OracleDriver"></property>
<property name="jdbcUrl" value="jdbc:oracle:thin:@192.168.1.3:1521:HZORA6"></property>
<property name="user" value="hz1001"></property>
<property name="password" value="123"></property>
<property name="maxPoolSize" value="40"></property>
<property name="minPoolSize" value="1"></property>
<property name="initialPoolSize" value="1"></property>
<property name="maxIdleTime" value="20"></property>
</bean>
以下の
3.proxool接続プール//hibernate 1 proxoolのプロファイル、ファイル名:proxool.xml(一般的にhibernate.cfg.xmlファイルと同じディレクトリに格納されます)この例ではMYSQLデータベースを構成し、データベースの名前はschoolprojectです.
<?xml version="1.0" encoding="UTF-8"?>
<!-- the proxool configuration can be embedded within your own application's. Anything outside the "proxool" tag is ignored. --> <something-else-entirely>
<proxool>
<!-- -->
<alias>DBPool</alias>
<!--proxool -->
<driver-url>jdbc:mysql://localhost:3306/schoolproject?useUnicode=true&characterEncoding=UTF8 </driver-url>
<!—JDBC -->
<driver-class>com.mysql.jdbc.Driver</driver-class>
<driver-properties>
<property name="user" value="root"/>
<property name="password" value=""/>
</driver-properties>
<!-- proxool ( ), , -->
<house-keeping-sleep-time>90000</house-keeping-sleep-time> <!-- , -->
<maximum-new-connections>20</maximum-new-connections> <!-- -->
<prototype-count>5</prototype-count>
<!-- , , , , maximum-new-connections -->
<maximum-connection-count>100</maximum-connection-count>
<!-- -->
<minimum-connection-count>10</minimum-connection-count> </proxool>
</something-else-entirely>
//spring+hibernate
<bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource">
<property name="driver"><value>${driver}</value></property>
<property name="jdbcUrl"><value>${read.jdbcUrl}</value></property>
<property name="user"><value>${read.user}</value></property>
<property name="password"><value>${read.password}</value></property>
<property name="minPoolSize"><value>10</value></property>
<property name="maxPoolSize"><value>30</value></property>
<property name="initialPoolSize"><value>10</value></property>
<property name="maxIdleTime"><value>28000</value></property>
<property name="idleConnectionTestPeriod"><value>28000</value></property>
</bean>
4.JNDI プールのデータソースは、Webサーバなどのアプリケーションサービスによって されています.Hibernateは、JNDI でこのデータソースを するだけです.アプリケーションサーバは、 プールを にJNDIバインドデータソースとして するjavaxである.jdbc.Datasourceクラスのインスタンスです.hibernateなどのHibernateファイルを するだけです.connection.Datasource=java:/comp/env/jdbc/scoolproject//JNDI hibernate.transaction.factory_class = org.hibernate.transaction.JTATransactionFactory hibernate.transaction.manager_loopup_class = org.hibernate.transaction.JBossTransactionManagerLookup hibernate.dialect=org.hibernate.dialect.MySQLDialect