ssh 整合 中如何使用 c3p0 链接池 经测试已成功 不受 hibernate的8小时限制
ssh 整合 中怎么使用 c3p0 链接池 经测试已成功 不受 hibernate的8小时限制
实现方式很简单,只操作 applicationContext文件就可以了 再加个c3p0的开发包 自己下:
applicationContext.xml中配置:
1: <!-- 添加 dataSource-->
<bean id="dataSource"
class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property name="driverClass">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="jdbcUrl">
<value>jdbc:mysql://192.168.2.49:3306/sms?useUnicode=true&characterEncoding=GBK</value>
</property>
<property name="user">
<value>root</value>
</property>
<property name="password">
<value>admin</value>
</property>
<!--连接池中保留的最小连接数。-->
<property name="minPoolSize">
<value>5</value>
</property>
<!--连接池中保留的最大连接数。Default: 15 -->
<property name="maxPoolSize">
<value>30</value>
</property>
<!--初始化时获取的连接数,取值应在minPoolSize与maxPoolSize之间。Default: 3 -->
<property name="initialPoolSize">
<value>10</value>
</property>
<!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 -->
<property name="maxIdleTime">
<value>60</value>
</property>
<!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 -->
<property name="acquireIncrement">
<value>5</value>
</property>
<!--JDBC的标准参数,用以控制数据源内加载的PreparedStatements数量。但由于预缓存的statements
属于单个connection而不是整个连接池。所以设置这个参数需要考虑到多方面的因素。
如果maxStatements与maxStatementsPerConnection均为0,则缓存被关闭。Default: 0-->
<property name="maxStatements">
<value>0</value>
</property>
<!--每60秒检查所有连接池中的空闲连接。Default: 0 -->
<property name="idleConnectionTestPeriod">
<value>60</value>
</property>
<!--定义在从数据库获取新连接失败后重复尝试的次数。Default: 30 -->
<property name="acquireRetryAttempts">
<value>30</value>
</property>
<!--获取连接失败将会引起所有等待连接池来获取连接的线程抛出异常。但是数据源仍有效
保留,并在下次调用getConnection()的时候继续尝试获取连接。如果设为true,那么在尝试
获取连接失败后该数据源将申明已断开并永久关闭。Default: false-->
<property name="breakAfterAcquireFailure">
<value>true</value>
</property>
<!--因性能消耗大请只在需要的时候使用它。如果设为true那么在每个connection提交的
时候都将校验其有效性。建议使用idleConnectionTestPeriod或automaticTestTable
等方法来提升连接测试的性能。Default: false -->
<property name="testConnectionOnCheckout">
<value>false</value>
</property>
</bean>
2: <!-- 修改 原有的 bean sessionFactory-->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<!--<property name="configLocation"
value="classpath:hibernate.cfg.xml">
</property>
--><property name="dataSource">
<ref local="dataSource" />
</property>
<property name="mappingResources">
<list>
<!--这里面放你hibernate 中的 pojo xml 对象-->
<value>com/pojos/TbLimits.hbm.xml</value>
<value>com/pojos/TbHandlerLimits.hbm.xml</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>
</props>
</property>
</bean>
<!--修改系统时间进行测试试试-->
下面把application.xml 中的一些配置方法罗列下,以及一些事物
init.properties文件配置内容
实现方式很简单,只操作 applicationContext文件就可以了 再加个c3p0的开发包 自己下:
applicationContext.xml中配置:
1: <!-- 添加 dataSource-->
<bean id="dataSource"
class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property name="driverClass">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="jdbcUrl">
<value>jdbc:mysql://192.168.2.49:3306/sms?useUnicode=true&characterEncoding=GBK</value>
</property>
<property name="user">
<value>root</value>
</property>
<property name="password">
<value>admin</value>
</property>
<!--连接池中保留的最小连接数。-->
<property name="minPoolSize">
<value>5</value>
</property>
<!--连接池中保留的最大连接数。Default: 15 -->
<property name="maxPoolSize">
<value>30</value>
</property>
<!--初始化时获取的连接数,取值应在minPoolSize与maxPoolSize之间。Default: 3 -->
<property name="initialPoolSize">
<value>10</value>
</property>
<!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 -->
<property name="maxIdleTime">
<value>60</value>
</property>
<!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 -->
<property name="acquireIncrement">
<value>5</value>
</property>
<!--JDBC的标准参数,用以控制数据源内加载的PreparedStatements数量。但由于预缓存的statements
属于单个connection而不是整个连接池。所以设置这个参数需要考虑到多方面的因素。
如果maxStatements与maxStatementsPerConnection均为0,则缓存被关闭。Default: 0-->
<property name="maxStatements">
<value>0</value>
</property>
<!--每60秒检查所有连接池中的空闲连接。Default: 0 -->
<property name="idleConnectionTestPeriod">
<value>60</value>
</property>
<!--定义在从数据库获取新连接失败后重复尝试的次数。Default: 30 -->
<property name="acquireRetryAttempts">
<value>30</value>
</property>
<!--获取连接失败将会引起所有等待连接池来获取连接的线程抛出异常。但是数据源仍有效
保留,并在下次调用getConnection()的时候继续尝试获取连接。如果设为true,那么在尝试
获取连接失败后该数据源将申明已断开并永久关闭。Default: false-->
<property name="breakAfterAcquireFailure">
<value>true</value>
</property>
<!--因性能消耗大请只在需要的时候使用它。如果设为true那么在每个connection提交的
时候都将校验其有效性。建议使用idleConnectionTestPeriod或automaticTestTable
等方法来提升连接测试的性能。Default: false -->
<property name="testConnectionOnCheckout">
<value>false</value>
</property>
</bean>
2: <!-- 修改 原有的 bean sessionFactory-->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<!--<property name="configLocation"
value="classpath:hibernate.cfg.xml">
</property>
--><property name="dataSource">
<ref local="dataSource" />
</property>
<property name="mappingResources">
<list>
<!--这里面放你hibernate 中的 pojo xml 对象-->
<value>com/pojos/TbLimits.hbm.xml</value>
<value>com/pojos/TbHandlerLimits.hbm.xml</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>
</props>
</property>
</bean>
<!--修改系统时间进行测试试试-->
下面把application.xml 中的一些配置方法罗列下,以及一些事物
引用
最基本,原始的application.xml配置
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util" xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd"> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="configLocation" value="classpath:hibernate.cfg.xml"> </property> </bean> <bean id="TbUserDAO" class="com.dao.TbUserDAO"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <bean id="TbMapAdsDAO" class="com.dao.TbMapAdsDAO"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <bean id="TbIndustryDAO" class="com.dao.TbIndustryDAO"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <bean id="TbAdRecordDAO" class="com.dao.TbAdRecordDAO"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <bean id="TbAccountDAO" class="com.dao.TbAccountDAO"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <bean id="TbPayoutRecordDAO" class="com.dao.TbPayoutRecordDAO"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <bean id="TbUserFeedbackDAO" class="com.dao.TbUserFeedbackDAO"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <bean id="TbNewsDAO" class="com.dao.TbNewsDAO"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <bean id="TbJobDAO" class="com.dao.TbJobDAO"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <bean id="TbAdAreaDAO" class="com.dao.TbAdAreaDAO"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <bean id="TbGroupPurchaseDAO" class="com.dao.TbGroupPurchaseDAO"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <bean id="TbFriendsDAO" class="com.dao.FavorTicketDAO"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <bean id="GroupClassifyDAO" class="com.dao.GroupClassifyDAO"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <bean id="BossDAO" class="com.dao.BossDAO"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <bean id="FavorTicketDAO" class="com.dao.FavorTicketDAO"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <bean id="TbPayMentDAO" class="com.dao.TbPayMentDAO"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <bean id="TbAdminUsersDAO" class="com.dao.TbAdminUsersDAO"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <bean id="TbPayMentParticularDAO" class="com.dao.TbPayMentParticularDAO"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <bean id="TbDigitInfoDAO" class="com.dao.TbDigitInfoDAO"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <bean id="TbPhoneInfoDAO" class="com.dao.TbPhoneInfoDAO"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <bean id="TbPayDAO" class="com.dao.TbPayDAO"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <bean id="TbBrandDAO" class="com.dao.TbBrandDAO"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <bean id="TbFatherClassDAO" class="com.dao.TbFatherClassDAO"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <bean id="TbDigitalClassDAO" class="com.dao.TbDigitalClassDAO"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <bean id="TbZixunDAO" class="com.dao.TbZixunDAO"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <bean id="TbDigitalBrandDAO" class="com.dao.TbDigitalBrandDAO"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <bean id="TbLiuyanDAO" class="com.dao.TbLiuyanDAO"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <bean id="TbMyFavorTicketRecordDAO" class="com.dao.TbMyFavorTicketRecordDAO"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <bean id="TbMyGrouponRecordDAO" class="com.dao.TbMyGrouponRecordDAO"> <property name="sessionFactory"> <ref bean="sessionFactory"></ref> </property> </bean> <bean id="TbMyInvitationDAO" class="com.dao.TbMyInvitationDAO"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <!--start service bean --> <bean id="userService" class="com.services.imp.UserServicesImp"> <property name="userDao" ref="TbUserDAO"></property> </bean> <bean id="azimuthService" class="com.services.imp.AreaServiceImp"> <property name="tbAdAreaDAO" ref="TbAdAreaDAO"></property> </bean> <bean id="adAndNewsManageService" class="com.services.imp.AdAndNewsMangeServiceImpl"> <property name="tbMapAdsDAO" ref="TbMapAdsDAO"></property> <property name="tbNewsDAO" ref="TbNewsDAO"></property> </bean> <bean id="botManageService" class="com.services.imp.BotManageServiceImpl"> <property name="tbJobDAO" ref="TbJobDAO"></property> </bean> <bean id="accountService" class="com.services.imp.TbAcountServiceImpl"> <property name="tbAccountDAO" ref="TbAccountDAO"></property> </bean> <bean id="groupPurchase" class="com.services.imp.GroupPurchaseServiceImpl"> <property name="tbGroupPurchaseDAO" ref="TbGroupPurchaseDAO"></property> </bean> <bean id="bossService" class="com.services.imp.BossServiceImpl"> <property name="bossDAO" ref="BossDAO"></property> </bean> <bean id="adminManageService" class="com.services.imp.AdminManageServiceImpl"> <property name="tbAdminUsersDAO" ref="TbAdminUsersDAO"></property> </bean> <bean id="phoneService" class="com.services.imp.PhoneServiceImpl"> <property name="tbPhoneInfoDAO" ref="TbPhoneInfoDAO"></property> <property name="tbBrandDAO" ref="TbBrandDAO"></property> <property name="tbDigitalBrandDAO" ref="TbDigitalBrandDAO"></property> <property name="tbDigitInfoDAO" ref="TbDigitInfoDAO"></property> </bean> <bean id="tbDigitalClassService" class="com.services.imp.DigigalClassServiceImpl"> <property name="tbDigitalClassDAO" ref="TbDigitalClassDAO"></property> <property name="tbDigitInfoDAO" ref="TbDigitInfoDAO"></property> <property name="tbDigitalBrandDAO" ref="TbDigitalBrandDAO"></property> </bean> <bean id="digitalInfoService" class="com.services.imp.DigitalInfoServiceImpl"> <property name="tbDigitInfoDAO" ref="TbDigitInfoDAO"></property> <property name="tbDigitalBrandDAO" ref="TbDigitalBrandDAO"></property> </bean> <bean id="digitalBrandService" class="com.services.imp.DigitalBrandServiceImpl"> <property name="tbDigitalBrandDAO" ref="TbDigitalBrandDAO"></property> </bean> <bean id="fatherClassService" class="com.services.imp.FatherClassServiceImpl"> <property name="tbFatherClassDAO" ref="TbFatherClassDAO"></property> </bean> <!--end service bean --> <!-- start action bean --> <bean name="/login" class="com.actions.LoginRigAction"> <property name="ibossService" ref="bossService"></property> <property name="itbAcountService" ref="accountService"></property> <property name="userServices" ref="userService"></property> </bean> <bean name="/adver" class="com.actions.AdAndNewsvertise"> <property name="iadManageService" ref="adAndNewsManageService"></property> <property name="userServices" ref="userService"></property> </bean> <bean name="/botManage" class="com.actions.BotManageAction"> <property name="ibotMangeBotManageService" ref="botManageService"></property> </bean> <bean name="/groupPurchase" class="com.actions.GroupPurchaseAction"> <property name="igroupPurchaseService" ref="groupPurchase"></property> <property name="ibossService" ref="bossService"></property> </bean> <bean name="/indexpage" class="com.actions.GroupPurchaseAction"> <property name="igroupPurchaseService" ref="groupPurchase"></property> </bean> <bean name="/boss" class="com.actions.BossAction"> <property name="ibossService" ref="bossService"></property> <property name="itbAcountService" ref="accountService"></property> <property name="userServices" ref="userService"></property> </bean> <bean name="/admap" class="com.actions.AdMapAction"> <property name="igroupPurchaseService" ref="groupPurchase"></property> <property name="iadAndNewsManageServices" ref="adAndNewsManageService"></property> </bean> <bean name="/adminManage" class="com.actions.AdminManageAction"> <property name="iadminManageService" ref="adminManageService"></property> </bean> <bean name="/phoneManage" class="com.actions.PhoneAction"> <property name="iphoneService" ref="phoneService"></property> <property name="idigitalClassService" ref="tbDigitalClassService"></property> </bean> <bean name="/digital" class="com.actions.DigitalClassAction"> <property name="idigitalClassService" ref="tbDigitalClassService"></property> <property name="idigitalInfoService" ref="digitalInfoService"></property> </bean> <bean name="/digitalManage" class="com.actions.DigitalInfoManageAction"> <property name="iphoneService" ref="phoneService"></property> <property name="idigitalBrandService" ref="digitalBrandService"></property> <property name="idigitalClassService" ref="tbDigitalClassService"></property> <property name="ifatherClassService" ref="fatherClassService"></property> <property name="infoService" ref="digitalInfoService"></property> </bean> <!-- <bean name="" class="com.actions.TbAcountAction"> <property name="ibAcountService" ref="accountService"></property> </bean> --> <!-- end action bean --> <!-- 事务管理器 --> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <!-- 事务属性 次要业务--> <tx:advice id="mycy"> <tx:attributes> <tx:method name="*"/> </tx:attributes> </tx:advice> <!-- 织入 --> <aop:config> <aop:advisor advice-ref="mycy" pointcut="execution(* com.services.*.*(..))"/> </aop:config> </beans>
引用
下面是标准application.xml配置文件
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util" xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd"> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>classpath:init.properties</value> </list> </property> <property name="fileEncoding" value="utf-8" /> </bean> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="driverClass"> <!-- <value>com.mysql.jdbc.Driver</value> --> <value>${driverName}</value> </property> <property name="jdbcUrl"> <value>${dataSource.url}</value> </property> <property name="user"> <value>${dataSource.username}</value> </property> <property name="password"> <value>${dataSource.password}</value> </property> <!--连接池中保留的最小连接数。--> <property name="minPoolSize"> <value>5</value> </property> <!--连接池中保留的最大连接数。Default: 15 --> <property name="maxPoolSize"> <value>30</value> </property> <!--初始化时获取的连接数,取值应在minPoolSize与maxPoolSize之间。Default: 3 --> <property name="initialPoolSize"> <value>10</value> </property> <!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 --> <property name="maxIdleTime"> <value>60</value> </property> <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 --> <property name="acquireIncrement"> <value>5</value> </property> <!-- JDBC的标准参数,用以控制数据源内加载的PreparedStatements数量。但由于预缓存的statements 属于单个connection而不是整个连接池。所以设置这个参数需要考虑到多方面的因素。 如果maxStatements与maxStatementsPerConnection均为0,则缓存被关闭。Default: 0 --> <property name="maxStatements"> <value>0</value> </property> <!--每60秒检查所有连接池中的空闲连接。Default: 0 --> <property name="idleConnectionTestPeriod"> <value>60</value> </property> <!--定义在从数据库获取新连接失败后重复尝试的次数。Default: 30 --> <property name="acquireRetryAttempts"> <value>30</value> </property> <!-- 获取连接失败将会引起所有等待连接池来获取连接的线程抛出异常。但是数据源仍有效 保留,并在下次调用getConnection()的时候继续尝试获取连接。如果设为true,那么在尝试 获取连接失败后该数据源将申明已断开并永久关闭。Default: false --> <property name="breakAfterAcquireFailure"> <value>true</value> </property> <!-- 因性能消耗大请只在需要的时候使用它。如果设为true那么在每个connection提交的 时候都将校验其有效性。建议使用idleConnectionTestPeriod或automaticTestTable 等方法来提升连接测试的性能。Default: false --> <property name="testConnectionOnCheckout"> <value>false</value> </property> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <!-- <property name="configLocation" value="classpath:hibernate.cfg.xml"> </property> --> <property name="dataSource"> <ref local="dataSource" /> </property> <property name="mappingResources"> <list> <value>com/pojos/TbFlightInfo.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> <prop key="hibernate.show_sql">${hibernate.show_sql}</prop> <prop key="hibernate.format_sql">false</prop> <!-- <prop key="hibernate.generate_statistics">true</prop> --> <!-- <prop key="hibernate.connection.release_mode">auto</prop> --> <!-- <prop key="hibernate.autoReconnect">true</prop> --> </props> </property> </bean> <bean id="TbFlightInfoDAO" class="com.sxy.dao.imple.FlightInfoDaoImple"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <!-- serviceBean start--> <bean id="flightInfoService" class="com.service.serviceImpl.FlightInfoServiceImpl"> <property name="tbFlightInfoDAO" ref="TbFlightInfoDAO"></property> </bean> <!-- serviceBean end--> <bean id="qneOrderService" class="com.service.serviceImpl.QNE_OrderServiceImpl"> <property name="qNE_OrderDAO" ref="QNE_OrderDAO"></property> </bean> <!-- actionBean start--> <bean name="/flightInfo" class="com.actions.FlightInfoAction"> <property name="iflightInfoService" ref="flightInfoService"></property> </bean> <!-- actionBean end--> <import resource="financeBean.xml" /> <import resource="myReports.xml" /> <import resource="basalDataBean.xml" /> <!--事务管理器 --> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <!--哪些类的哪些方法参与事务 --> <aop:config> <aop:pointcut id="allManagerMethod" expression="execution(* com.*.serviceImpl..*.*(..))" /> <aop:advisor pointcut-ref="allManagerMethod" advice-ref="txAdvice" /> </aop:config> <!--配置事务的传播特性 --> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="save*" propagation="REQUIRED" /> <tx:method name="add*" propagation="REQUIRED" /> <tx:method name="create*" propagation="REQUIRED" /> <tx:method name="delete*" propagation="REQUIRED" /> <tx:method name="update*" propagation="REQUIRED" /> <tx:method name="*" propagation="REQUIRED" /> </tx:attributes> </tx:advice> </beans>
init.properties文件配置内容
driverName=com.mysql.jdbc.Driver #driverName=com.p6spy.engine.spy.P6SpyDriver dataSource.url=jdbc:mysql://ip地址/数据库名称?useUnicode=true&characterEncoding=UTF-8 dataSource.username=root dataSource.password=root hibernate.show_sql =true