应用服务器或第三方C3P0的连接池
1.Tomcat中配置如下:
Tomcat/conf/context.xml中
<Context>
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Resource name="jdbc/hib" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000" username="root" password="123456"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/hib"
/>
</Context>
注意把数据库驱动包放到tomcat的lib下。
使用应用服务器的连接池只能在web应用中使用,本地的junit或main主函数中获取sessionFactory是不行的。
hibernate.cfg.xml中
<property name="connection.datasource">java:comp/env/jdbc/hib</property>
2.c3p0
<property name="connection.url">
jdbc:mysql://localhost:3306/hib
</property>
<property name="connection.username">root</property>
<property name="connection.password">123456</property>
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
<property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
<!-- 每次用完新建连接的数量 -->
<property name="hibernate.c3p0.acquire_increment">2</property>
<!-- 检查连接池中空闲连接的时间间隔,以秒为单位 -->
<property name="c3p0.idle_test_period">120</property>
<!-- 最大连接数 -->
<property name="c3p0.max_size">10</property>
<!-- 最小连接数 -->
<property name="c3p0.min_size">10</property>
<!-- 设置连接池中Statement对象的最大数量 -->
<property name="c3p0.max_statements">50</property>
<!-- 连接池中连接的最大空闲时间,超时后被删除 -->
<property name="c3p0.timeout">3600</property>