参考:(willpower88兄的blog)
http://www.blogjava.net/willpower88/archive/2007/01/10/92928.html当我spring中用c3p0时第一次老出现
org.hibernate.exception.JDBCConnectionException: could not execute query
刷新后就不会。一番折腾后直接用<property name="" value="" />就可以了。随后找到willpower88兄的blog他总结得很好。
环境:
spring 2.0
c3p0-0.9.0.4
spring配置文件如下(引用willpower88兄的,注释掉的都有问题的):
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="com.mysql.jdbc.Driver" />
<property name="jdbcUrl" value="jdbc:mysql://localhost/test"/>
<property name="user" value="root"/>
<property name="password" value=""/>
<property name="minPoolSize" value="2"/>
<property name="maxPoolSize" value="20"/>
<property name="maxIdleTime" value="1800"/>
<property name="acquireIncrement" value="2"/>
<property name="maxStatements" value="0"/>
<property name="initialPoolSize" value="3"/>
<property name="idleConnectionTestPeriod" value="1800"/>
<property name="acquireRetryAttempts" value="30"/>
<property name="breakAfterAcquireFailure" value="true"/>
<property name="testConnectionOnCheckout" value="false"/>
<!--
<property name="properties">
<props>
<prop key="c3p0.minPoolSize">1</prop>
<prop key="c3p0.maxPoolSize">10</prop>
<prop key="c3p0.maxIdleTime">1800</prop>
<prop key="c3p0.acquireIncrement">2</prop>
<prop key="c3p0.maxStatements">0</prop>
<prop key="c3p0.initialPoolSize">2</prop>
<prop key="c3p0.idleConnectionTestPeriod">1800</prop>
<prop key="c3p0.acquireRetryAttempts">30</prop>
<prop key="c3p0.breakAfterAcquireFailure">true</prop>
<prop key="c3p0.testConnectionOnCheckout">true</prop>
<prop key="user">root</prop>
<prop key="password">999999</prop>
</props>
</property>
-->
</bean>
<!-- Hibernate SessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mappingDirectoryLocations">
<list>
<value>classpath:/com/licaionline/domain/</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.generate_statistics">true</prop>
<prop key="hibernate.connection.release_mode">auto</prop>
<prop key="hibernate.autoReconnect">true</prop>
<prop key="hibernate.cglib.use_reflection_optimizer">true</prop>
<!--
<prop key="hibernate.useUnicode"></prop>
<prop key="hibernate.characterEncoding"></prop>
<prop key="hibernate.default-lazy-init"></prop>
<prop key="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</prop>
-->
<!--
<prop key="hibernate.c3p0.acquire_increment">2</prop>
<prop key="hibernate.c3p0.idle_test_period">1800</prop>
<prop key="hibernate.c3p0.timeout">1800</prop>
<prop key="hibernate.c3p0.max_size">30</prop>
<prop key="hibernate.c3p0.min_size">2</prop>
<prop key="hibernate.c3p0.max_statements">50</prop>
-->
</props>
</property>
</bean>
分享到:
相关推荐
然后,在Java代码中,通过Spring框架或者其他方式初始化并使用C3P0数据源: ```java import com.mchange.v2.c3p0.ComboPooledDataSource; public class DataSourceConfig { public static ComboPooledDataSource ...
1. **引入依赖**:在项目中添加C3P0相关的JAR包,如`c3p0-0.9.5.2.jar`,`c3p0-oracle-thin-extras-0.9.5.2.jar`(针对Oracle数据库的额外支持),以及`mchange-commons-java-0.2.11.jar`(Mchange Commons库,用于...
C3P0是一个开源的JDBC连接池,Spring 2.5.4集成C3P0,提供了一种有效管理数据库连接的方式,包括自动检测并回收空闲过久的连接,提高了数据库操作的性能和效率。 5. CGlib 字节码库: CGlib是一个强大的字节码...
- 使用`<bean>`标签定义一个名为`dataSource`的数据源,这里使用了C3P0连接池。 - 配置数据库连接的相关属性,如驱动类、URL、用户名和密码等。 2. **SessionFactory配置**: - 创建一个`sessionFactory`的bean...
- C3P0:开源的JDBC连接池,提供了比JDBC更强大的功能,如自动检测死锁、自动重连等。 - DBCP:Apache的一个开源项目,基于Jakarta-pool实现,是Tomcat默认的数据源。 - HikariCP:被誉为“最快的Java JDBC连接池”...
在Spring框架中,我们可以使用Apache的Commons DBCP或C3P0等库来提供数据源实现。 **配置Spring的多数据源** 1. 引入依赖:确保项目中包含了Spring、SpringMVC、MyBatis以及相应的数据源库的依赖。例如,如果使用...
· c3p0-0.9.1.2.bin.zip · apache-log4j-1.2.15.zip · xwork2-2.1.rar · dom4j-1.6.1.rar · elecfans.com-XPath.rar · xwork-assembly-2.1.6-all.zip · quartz-2.2.1-distribution.tar.gz ·...
通常使用`org.apache.commons.dbcp.BasicDataSource`或`c3p0`等数据源。配置示例如下: ```xml ``` ##### 2、配置Hibernate的核心组件 接下来配置Hibernate的核心组件,包括SessionFactory等。 ```xml...
1. **c3p0-0.9.1.2.jar**:这是一个数据库连接池,全称是C3P0。它提供了一种管理数据库连接的方式,允许应用程序在不关闭连接的情况下重复使用数据库连接,从而提高了性能和效率。C3P0包含了一些特性,如自动检测...
Spring提供了多种数据源实现,如DBCP、C3P0、BoneCP和Druid等。以Druid为例,配置数据源通常包括以下几个步骤: 1. 添加Druid和数据库驱动的Maven坐标到`pom.xml`文件。 2. 创建`DruidDataSource`对象,并设置...
1. **选择连接池实现**:有很多成熟的数据库连接池实现,如Apache的DBCP、C3P0,以及HikariCP等。HikariCP以其高性能和低延迟而受到广泛应用。 2. **配置连接池参数**:包括初始连接数、最大连接数、最小连接数、...
还会涉及JDBC和高级特性,如连接池(C3P0、Druid、HikariCP)以及ORM框架(如Hibernate、MyBatis)的使用。 10. **其他**:网络编程(TCP/IP、HTTP协议)、IO流、NIO、反射、Lambda表达式、Stream API、模块化系统...
10. **数据库操作**:SQL语言的基本操作(增删改查),事务的ACID属性,连接池(如C3P0、Druid、HikariCP),以及JDBC API的使用。 11. **Spring框架**:Spring的核心特性,如依赖注入(DI)、面向切面编程(AOP)...
以alibaba的Druid为基础(拒绝DBCP/C3P0),支持代码配置Druid,拒绝配置文件常规: 仅支持MySQL/SQLite(自用. 轻巧)IOC/DI/Transaction: 类似spring的控制反转,主要用于生成指定包下的DAO类的代理类(依赖...
为了提高性能和效率,开发中会使用连接池(如C3P0、HikariCP或Apache DBCP),它们管理和复用数据库连接,避免频繁地创建和销毁连接。 十、安全性与优化 确保Web数据库编程的安全性至关重要,这包括使用预编译语句...
首先,JDBC的连接池技术,如C3P0、HikariCP、Druid等,是提高系统性能的重要手段。学习如何配置和使用这些连接池,可以减少数据库连接的创建和销毁开销,提高并发处理能力。 其次,JDBC的批处理操作能显著提升大...
9. **数据库操作**:基本的SQL语法,JDBC API的使用,事务处理(ACID属性),以及连接池(C3P0, HikariCP, Druid等)的配置和优化。 10. **设计模式**:常见的23种设计模式,如单例、工厂、观察者、装饰器、适配器...
4. **数据库相关**:SQL查询优化、事务管理、JDBC操作、连接池(如C3P0、Druid)。 5. **NoSQL**:如MongoDB、Redis的使用和原理。 《JAVA程序员面试题集合》可能会包含更广泛的题目,可能涵盖到Java开发过程中的...
在实际开发中,我们通常会使用try-with-resources语句来确保资源的正确关闭,同时也可以使用数据库连接池(如C3P0、HikariCP等)来管理数据库连接,提高性能和稳定性。 了解这些基础知识后,你可以进一步学习存储...
- **连接池**:使用连接池(如HikariCP或C3P0)管理数据库连接,以提高性能和资源利用率。 - **错误处理**:对可能出现的异常进行捕获和处理,提供有意义的错误信息。 - **安全**:避免SQL注入,使用预编译的`...