1:mysql
jdbc驱动: mysql-conncector-java-5.1.5-bin.jar
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 定义数据源Bean,使用C3P0数据源实现 -->
<bean id="dataSource"
class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<!-- 指定连接数据库的驱动 -->
<property name="driverClass" value="com.mysql.jdbc.Driver" />
<!-- 指定连接数据库的URL -->
<property name="jdbcUrl"
value="jdbc:mysql://localhost:3306/qdshm" />
<!-- 指定连接数据库的用户名 -->
<property name="user" value="root" />
<!-- 指定连接数据库的密码 -->
<property name="password" value="root" />
<!-- 指定连接数据库连接池的最大连接数 -->
<property name="maxPoolSize" value="40" />
<!-- 指定连接数据库连接池的最小连接数 -->
<property name="minPoolSize" value="10" />
<!-- 指定连接数据库连接池的初始化连接数 -->
<property name="initialPoolSize" value="10" />
<!-- 指定连接数据库连接池的连接的最大空闲时间 -->
<property name="maxIdleTime" value="3" />
</bean>
<!--定义了Hibernate的SessionFactory -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<!-- 配置Hibernate的参数 -->
<property name="hibernateProperties">
<props>
<!-- 指定数据库的方言 -->
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="show_sql">false</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<!-- JDBC执行批量更新语句的大小 清除缓存(定期清除缓存,减小压力 -->
<prop key="hibernate.jdbc.batch_size">30</prop>
</props>
</property>
<property name="mappingResources">
<!-- 映射的文件 -->
<list>
<value>XXXX.hbm.xml</value>
</list>
</property>
</bean>
<!-- 配置事务管理器Bean,因为使用Hibernate持久化技术,故使用HibernateTranscationManager 事务管理器 -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<!--为事务管理器注入SessionFactory 引用 -->
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<!-- 配置事务拦截器Bean -->
<bean id="transactionInterceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<!-- 事务拦截器bean需要依赖注入一个事务管理器 -->
<property name="transactionManager" ref="transactionManager" />
<property name="transactionAttributes">
<!-- 下面定义事务传播属性-->
<props>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
<!-- 定义BeanNameAutoProxyCreator 后处理器 ,BeanNameAutoProxyCreator为名字匹配字符串或者通配符的bean自动创建AOP代理。-->
<bean
class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<!-- 指定对满足哪些bean name的bean自动生成业务代理 -->
<property name="beanNames">
<!-- 下面是所有需要自动创建事务代理的bean-->
<list>
<value>*Dao</value>
<value>*Imp</value>
</list>
<!-- 此处可增加其他需要自动创建事务代理的bean-->
</property>
<!-- 下面定义BeanNameAutoProxyCreator所需的事务拦截器-->
<property name="interceptorNames">
<list>
<!-- 此处可增加其他新的Interceptor -->
<value>transactionInterceptor</value>
</list>
</property>
</bean>
<!-- 配置系统DAO组件 -->
<bean id="xxxxDao" class="org.boss.dao.XxxxDaoHibernate">
<!-- 依赖注入DAO组件所必需的SessionFactory引用 -->
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!-- 配置系统的业务逻辑组件 -->
<bean id="xxxxImp" class="org.boss.service. XxxxManagerImp">
<property name="xxxxDao" ref="xxxxDao"></property>
</bean>
</beans>
分享到:
相关推荐
在使用Hibernate配置c3p0数据源时,我们需要引入`c3p0-jar`包,这个压缩包中的JAR文件包含了c3p0的所有相关类和库。在项目中,我们通常将这个JAR文件添加到类路径(ClassPath)中,以便于程序运行时能够找到并加载c3...
4. **在代码中使用**:在SessionFactory的构建过程中,Hibernate会根据配置文件中的信息自动创建c3p0数据源,然后使用这个数据源来获取和释放数据库连接。 在实际项目中,还需要根据应用的具体需求和服务器环境对c3...
在本项目"SSH - SpringMVC4 + Spring4 + Hibernate4 + c3p0 + Mysql.zip"中,开发者使用了SpringMVC4作为表现层,Spring4作为控制层和服务层,Hibernate4作为持久层,c3p0作为数据库连接池,以及MySQL作为数据库。...
C3P0是一个开源的Java连接池实现,它提供了一种灵活且功能强大的数据库连接管理方式。在本文中,我们将深入探讨C3P0连接池的基本概念、工作原理以及如何在Java项目中配置和使用。 **C3P0简介** C3P0是由David Syer...
C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。C3P0提供了一些高级特性,如自动检测坏连接、自动重连等,使得数据库连接管理更加便捷高效。 2. **Hibernate配置C3P0** ...
c3p0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,提供数据库连接的自动创建、释放等功能,提高了数据库连接的使用效率。在SSH项目中,c3p0被用来管理和优化数据库连接,确保在高并发环境下仍能高效地处理...
标题中的“hibernate架包+c3p0”指的是在Java开发中使用Hibernate ORM框架结合C3P0连接池来管理数据库连接的技术组合。Hibernate是一个强大的对象关系映射(ORM)框架,它允许开发者用面向对象的方式处理数据库操作...
6. **Hibernate不推荐使用DBCP**:Hibernate开发团队不建议在Hibernate中直接使用DBCP连接池,可能是因为其他连接池如C3P0或HikariCP等提供了更好的性能和稳定性。 【标签】中的知识点: 7. **JNDI资源**:在...
C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。在Java应用程序中,C3P0可以帮助我们管理数据库连接,提高应用程序的性能和效率。这个压缩包包含了使用C3P0连接数据库所需...
C3P0是基于JDBC的数据源实现,允许应用程序通过配置参数来优化数据库连接的创建、管理和关闭,从而避免频繁地创建和销毁数据库连接,降低系统的资源消耗。 C3P0连接池的主要功能包括: 1. 连接池管理:C3P0可以...
通过以上配置,C3P0就可以在Hibernate应用中发挥作用,有效地管理数据库连接,提高系统性能。同时,C3P0还提供了许多高级特性,如自动测试连接的健康状态、自动回收失效连接等,这些都可以根据实际需求进行配置优化...
**使用C3P0简化数据库连接** C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI...通过上述介绍,我们可以看到C3P0的使用方法以及如何通过`DBConnectionManager`来封装数据源操作,使得数据库连接的管理更加便捷。
例如,当你在配置Hibernate时,可以在`hibernate-cfg.xml`中添加C3P0的相关配置,指定数据源类型为C3P0,并设置初始化连接数、最大连接数、最小空闲连接数等参数。这使得Hibernate能够利用C3P0的连接池进行数据库...
1. **配置C3P0**:在项目的配置文件(通常是`applicationContext.xml`或`hibernate.cfg.xml`)中,添加C3P0的数据源配置。配置项包括数据库URL、用户名、密码、初始化连接数、最大连接数等。 ```xml ...
6. **JNDI集成**:C3P0可以方便地与Java Naming and Directory Interface (JNDI) 集成,使得在应用服务器中部署和管理数据源变得更加便捷。 7. **多数据库支持**:C3P0支持多种主流的数据库,包括MySQL、Oracle、...
这里使用了Spring的`DriverManagerDataSource`来初始化基本的数据库连接信息,然后通过`ComboPooledDataSource`创建C3P0数据源。 4. **配置SessionFactory**:更新Hibernate的SessionFactory配置,使其使用C3P0数据...