<beanid="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <propertyname="driverClass" value="${jdbc.driverClassName}"/> <propertyname="jdbcUrl" value="${jdbc.url}"/> <propertyname="user" value="${jdbc.username}"/> <propertyname="password" value="${jdbc.password}"/> <!--连接池中保留的最大连接数 --> <propertyname="maxPoolSize" value="50"/> <!--连接池中保留的最小连接数。--> <propertyname="minPoolSize" value="5"/> <!--初始化时获取的连接数,取值应在minPoolSize与maxPoolSize之间。Default: 5 --> <propertyname="initialPoolSize" value="5"/> <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 --> <propertyname="acquireIncrement" value="5"/> <!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 --> <propertyname="maxIdleTime" value="300"/> <!--定义在从数据库获取新连接失败后重复尝试的次数。Default: 30 --> <propertyname="acquireRetryAttempts" value="1"></property> </bean> <!-- 使用jdbcTemplate模版 --> <beanid="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <propertyname="dataSource" ref="dataSource"/> </bean> <!-- 配置Srping JDBC 事务 --> <beanid="jdbcTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <propertyname="dataSource"> <reflocal="dataSource"/> </property> </bean> <!-- 开启jdbc注解事务 --> <tx:annotation-driventransaction-manager="jdbcTransactionManager"/>
oracle数据库,使用事物的时候总是不回滚
@Service("testService") publicclassTestServiceImpl implementsTestService { @Resource privateActivityDao activityDao; @Override @Transactional(rollbackFor = IhkMsyfException.class) publicvoidsaveTest() throwsIhkMsyfException { try{ Activity activity = newActivity(); activity.setCreateTime(newDate()); activity.setName("test"); activity.setActivityUrl("test"); activity.setAwardCount(1); activity.setAwardDay(1); activity.setContent("test"); activity.setEndTime(newDate()); activity.setIconUrl(""); activity.setOdds(1); activity.setSceneId("123"); activity.setShareUrl("test"); activity.setStartTime(newDate()); activity.setStatus(false); activity.setTypeId(1l); activity.setUserCount(1); Long k = activityDao.save(activity); // activity.setId(k); // activity.setName("testesstsetset"); // activityDao.update(activity); thrownewRuntimeException(); } catch(Exception e) { IhkMsyfException.myPrintStackTrace(e); thrownewIhkMsyfException(); } } }