2

如果您没有在 hibernate.cfg.xml 中指定设置,默认连接池是什么,您如何更改它?这是休眠配置

<hibernate-configuration>
  <session-factory>
    <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/POM_IVR</property>
    <property name="hibernate.connection.username">root</property>
    <property name="hibernate.connection.password">XXX</property>
    <property name="hibernate.show_sql">true</property>
    <property name="hibernate.current_session_context_class">thread</property>
    <property name="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</property>
    <mapping resource="com/SurveyResults.hbm.xml"/>

  </session-factory>
</hibernate-configuration>

问题 1. c3p0 jar 自带 hibernate3 吗?

2.如果你不指定c3p0,hibernate是使用它的默认连接池(你怎么知道它没有使用默认,有参数)还是DBCP?

3.如何修改我的 Web 应用程序的 DCBP 参数 我是否必须更改 catalina 或 hibernate 配置中的上下文文件 conf/catalina/locahost/Applicationame.xml,我必须更改/添加什么我必须指定用户名和密码还是只是参数?

4.有人能解释一下这是如何工作的,休眠请求连接,tomcat会从池中获取连接吗?如果您指定 c3p0,DBCP 会被绕过吗?

5.如果我有 2 个 Web 应用程序使用相同的表/用户名/密码怎么办?如果他们有自己的 DBCP 和 c3p0 jar,他们会被征用什么?如果 conf/context.xml 应用于所有应用程序,您可以为 DBCP 指定全局参数以供应用程序使用吗?

这都与mysql的8小时连接超时有关,我不想更改数据库参数。

4

1 回答 1

4

是的,c3p0 是休眠的一部分:http: //www.informit.com/articles/article.aspx ?p=353736&seqNum=4

清单 10.2 示例 Hibernate c3p0 配置

hibernate.c3p0.max_size=1
hibernate.c3p0.min_size=0
hibernate.c3p0.timeout=5000
hibernate.c3p0.max_statements=100
hibernate.c3p0.idle_test_period=300
hibernate.c3p0.acquire_increment=2

我相信你所有的答案都在那里。

于 2012-07-09T14:50:56.940 回答