spring-framework-4.1.6 mvc整合commons-dbutils-1.6注解式事务

dbutils 是 Apache 提供的一个开源 JDBC 工具类库,对 JDBC 做了一些简单的封装,使用非常方便。在项目中经常会有用到事务,我们就来看看spring mvc是怎么结合dbutils开发注解式事务的。

  • 下载commons-dbutils-1.6.jar包,加入到项目中,然后在spring-mvc.xml全局文件编写相关配置,如下:
<!-- c3p0 有连接池作用,使用properties文件下的属性值 -->
<bean id ="dataSourceTarget" class= "com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close" >
    // 省略配置
</bean >

<!-- 对数据源进行代理 -->
<bean id ="proxyDataSource" class= "org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy" >
    <constructor-arg >
        <ref bean ="dataSourceTarget" />
    </constructor-arg >
</bean >

<bean id ="transactionManager" class= "org.springframework.jdbc.datasource.DataSourceTransactionManager" >
    <property name ="dataSource" ref="proxyDataSource" />
</bean >
<tx:annotation-driven transaction-manager ="transactionManager" />

<!-- 直接使用数据源的代理对象 -->
<bean id ="queryRunner" class= "org.apache.commons.dbutils.QueryRunner" >
    <constructor-arg >
        <ref bean ="proxyDataSource" />
    </constructor-arg >
</bean >
  • 创建Dao层和Service层
@Repository(value = "iTestDao" )

public class TestDao implements ITestDao {

      @Resource
      public QueryRunner queryRunner;

      @Override
      public int insertO2oTest(O2oTest o2oTest) throws SQLException {

            // 做数据库持久化操作

            return null;
      }
}

@Service(value = "iTestService" )
public class TestService implements ITestService {

      @Resource
      private ITestDao iTestDao;

      @Transactional(rollbackFor = Exception. class)
      @Override
      public String saveO2oTest( O2oTest o2oTest) throws SQLException {

            // 做逻辑业务操作

            return null;
      }

}
  • 通过spring-mvc.xml配置queryRunner,就可以在DAO层使用dbutils操作数据库,在Service层中通过在方法上使用标签Transactional注解配置,就可以实现事务控制
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值