spring-jdbc支持(编程式事务)

spring 学习

  其一    ----------------------- Spring对jdbc操作的包装类-------JdbcTemplate

             org.springframework.jdbc.core.support.JdbcDaoSupport;

            可以方便我们采用jdbc的方式对数据库进行操作

           <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
                        <property name="dataSource" ref="dataSource" />
            </bean>

           ------------------------spring对dao的支持-----------JdbcDaoTemplate

              可以通过继承此类,然后直接使用this.getJdbcTemplate() 进行数据库的操作

              配置dao时候加上

              <property name="dataSource" ref="dataSource" />


 其二

    之前的操作都没有事务的支持

   spring对事物的支持,需要借助

   1、jdbc的事务管理器

   2、spring对jdbc声明式事务的支持

    <bean id="dataSourceTransactionManager"
                         class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
                        <constructor-arg ref="dataSource" />
   </bean>

  <bean id="transactionTemplate"
                         class="org.springframework.transaction.support.TransactionTemplate">
               <property name="transactionManager" ref=dataSourceTransactionManager" />
  </bean>

   测试代码:

         TransactionTemplate tt=(TransactionTemplate)app.getBean("transactionTemplate");
          tt.execute(new TransactionCallbackWithoutResult(){
                       @Override
                       protected void doInTransactionWithoutResult(TransactionStatus transactionstatus) {
                              try{
                                  userDao.getJdbcTemplate().execute("insert into fwb_test values('fwb',24)");
                                  userDao.getJdbcTemplate().execute("insert into fwb_test values('fwb','sdfsdf')");
                                }catch(Exception e){
                                        System.out.println("我会滚了");
                                        e.printStackTrace();
                                        transactionstatus.setRollbackOnly();//回滚
                                     }
                            }
             });

//注TransactionCallbackWithoutResult释TransactionCallback的子类,为一个无返回类型的

猜你喜欢

转载自fwb7014.iteye.com/blog/1591798