12.11 声明事务

Spring提供JdbcTemplate能快捷操作数据库

  1. ```
    使用JDBC 回顾一下:
    1. getDataSource
    2. getConnection
    3. getStatement 或preparedStatement
    4. statement.setInt
    5. stament.executeQuery()
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15



      然后配置一下
      然后执行想执行的语句

      ```xml
      <!--1. 配置事务管理器让其进行事务控制:一定要导入面向切面编程的几个包,基本版aspect+增强版三个-->
      <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
      <!-- 控制住数据源-->
      <property name="dataSource" ref="dataSource"/>
      </bean>
      <!--2. 开启基于注解的事务控制模式:依赖tx名称空间-->
      <tx:annotation-driven transaction-manager="transactionManager"/>
      <!-- 3. 给事务方法加注解 -->
1
2
@Autowired
JdbcTemplate jdbcTemplate;
  1. 引入外部配置文件

  2. 扫描包

  3. 配置数据源

  4. 配置JDBCTEMPLATE,给JDBCTEMPLATE一个id,配置dataSource

  5. 配置声明式事务(上面的三步代码)

  6. @Transactional 
    是注解在要事务的方法上,不是执行在test上!
        @Transactional
        public void checkout(String username,String isbn) throws SQLException {
            bookDao.updateStock(isbn);
            int price = bookDao.getPrice(isbn);
            bookDao.updateBalance(username,price);
            int i=10/0;
        }//正确
    
    
        @Test
        @Transactional //错误 不应该注解在这
        public void test04() throws SQLException {
            BookService bookService=ioc.getBean("bookService",BookService.class);
    //        BookService bookService=new BookService();
    
            bookService.checkout("Tom","ISBN-001");
            System.out.println("结账完成");
        }
    
-------------文章已结束~感谢您的阅读-------------
穷且益坚,不堕青云之志。