hibernate - 将 c3p0 与 Tomcat 8 数据源一起使用

标签 hibernate c3p0

我有一个加载了数据源的 tomcat 8 服务器。我想知道是否可以将此 DataSource 与 c3p0 连接池管理结合使用。到目前为止,这是我尝试过的。

上下文.xml

 <Context>
 ...
 <Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" 
  maxIdle="30" maxTotal="100" maxWaitMillis="10000"
name="jdbc/store" password="text" type="javax.sql.DataSource" 
url="jdbc:mysql://localhost:3306/db" username="user"/>
 </Context>

hibernate 文件.cfg.xml
<hibernate-configuration>
<session-factory>
    <property name="hibernate.connection.driver_class">
        com.mysql.jdbc.Driver
    </property>
    <property name="hibernate.connection.datasource">
        java:comp/env/jdbc/store
    </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>


    <property name="hibernate.dialect">
        org.hibernate.dialect.MySQLDialect
    </property>

...more stuff

问题是服务器启动后mysql只显示一个进程

最佳答案

我终于找到了解决方案:context.xml Resource 应该是这样的

<Resource auth="Container" 
 name="jdbc/store" 
 type="com.mchange.v2.c3p0.ComboPooledDataSource" 
 driverClass="com.mysql.jdbc.Driver" 
 minPoolSize="5" maxPoolSize="10" 
 factory="org.apache.naming.factory.BeanFactory"
 jdbcUrl="jdbc:mysql://localhost:3306/database" 
 user="user" password="text" />

请注意,一些常见的资源属性是不同的,例如jdbcUrl 代替 url,用户代替用户名等

关于hibernate - 将 c3p0 与 Tomcat 8 数据源一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38363982/

相关文章:

java - Spring Boot 验证响应 JSON

java - 如何将 postgresql ARRAY_AGG 数据转换为 Java Set

eclipse - 类未找到 : org. springframework.web.servlet.DispatcherServlet

hibernate - 为什么应该将 FetchType.LAZY 与 FetchMode.JOIN 结合使用,而不是 FetchType.EAGER?

postgresql - c3p0: session 级咨询锁

java - 是否可以在单个 JDBC 连接上多路复用多个只读事务

HIBERNATE - JPA2 - H2 - 按键查询@ElementCollections HashMap

mysql - 连接被数据库丢弃

java - 为什么这些c3p0查询经常在mysql中运行

mysql - 关于c3p0和hibernate