spring 04 事务管理 火推

1.写出组件扫描涉及到四个标注 并写出含义 
2.写出组件扫描的实现步骤 
3.写出组件装配涉及到的标准  并说明区别 
4.写出实现 Spring DAO的步骤  可以以查询表中数据量为例 
-------------------------------------------------------------------
1.以继承JdbcDaoSupport 的方式  (查询银行账户表中的数据量)
  1.1 建立一张银行账户表   并建立对应的序列  
      最后使用序列作为主键值  插入几条数据 
  1.2 建立一个项目   拷贝 ioc   aop   连接池  数据库驱动包 
   以及 Spring 容器对应的配置文件
   开启组件扫描  和 注入 dataSource 
  1.3 写一个接口   定义一个查询数据量的方法 
  1.4 写一个接口的实现类  继承 JdbcDaoSupport  
      加标注 @Repository   并且注入 dataSource  这个dataSource 
      要定义在xml 中 并传递给父类 
      使用模板  完成 数据查询   
  1.5 写一个测试类 测试功能
2.根据银行的卡号 查询一个银行账户出来 
  2.1 建立表   和 序列 以及插入数据 
  2.2 根据表 来设计一个实体类   (昨天已经写好了)
  2.3 在接口 加一个根据卡号 来查询账户的方法 
  2.4 在实现类中 使用 模板来完成功能 
      使用模板完成功能 时 需要用到 RowMapper的实现类 
  2.5 测试  
3.根据卡号 和 密码 来查询一个银行账户 
   
4.查询对象列表 


5.给银行账户表 增加数据 
  5.1 接口中 增加一个方法  传入一个银行账户对象进来 
    然后把这些数据 存入数据库 
  5.2 实现类中 实现这个方法 
  5.3 测试 
6. 总结 JdbcTemplate 中的方法 
  queryForInt  查询数据的 数据量 
  queryForObject  查询数据的数据量   也可以查询单个对象(使用到RowMapper) 
  query    查询数据列表 (也会用到 RowMapper)
  update   用来完成 增  删  改 
  execute  一般用来执行 DDL(建表  删表  改表) 用的比较少 
  
7.不继承 JdbcDaoSupport 的方式 
    就需要我们自己 注入 JdbcTemplate    
  
8.Spring 中的事务 
  8.1 事务的概念 
     把多个sql(dml)操作 看成一个逻辑整体 这些语句 要求一起成功 或者一起失败。
  8.2 事务的特性 
     原子性    事务中的语句是一个不可分割的逻辑整体 
     一致性      事务中的语句状态要保持一致  
     隔离性     ------ 隔离级别 
          脏读     不可重复读    幻读 
          脏读:一个事务 读取到了另外一个事务没有提交的数据 
         不可重复读 : 一个事务在开始读取一份数据   在事务的操作过程中  另外一个事务对你读取
        哪份数据进行了修改 并进行提交  当第一个事务再次读取数据时 发现数据发生了改变。
         幻读: 一个事务 在事务开始时 对所有的数据进行了统计   在统计过程中数据发生了增加
         数据  再次统计所有数据时 数据改变了 
         
         为了解决三大读问题 引入了四个隔离级别 
        读未提交    读提交     可重复读      序列化 
      1       2       3         4                
      持久性:    
   8.3  Spring 中事务实现方式 
       编程式事务 
       声明式事务    
   8.4 Spring 中声明式事务的实现 
     8.4.1 Spring 声明式事务的优势 
          通过Spring的配置  对事务管理  而不是在源代码进行直接编码
          解除了  事务管理 和 代码的耦合
          可以随时从Spring 容器中进行删除 
     8.4.2 声明式事务的实现步骤
        1.开启组件扫描  和  开启声明式事务管理 
        <tx:annotation-driven
             transaction-manager="txManager" proxy-target-class="true"/>      
        transaction-manager  的意思是需要事务管理器 
        proxy-target-class   如果是false 代表使用jdk 的代理机制(必须要求
                    你的这个类实现接口) 如果是true 代表 使用 cglib的动态代理  
        2.配置事务管理器  和  数据源 
        <bean id= "txManager"
     class= "org.springframework.jdbc.datasource.DataSourceTransactionManager">
          <property name= "dataSource" ref="ds"/>
        </bean> 
        3.在需要事务管理的方法 或者 类上 加  
        @Transaction  标注 
           propagation   事务传播特性 
           isolation     设置隔离级别  一个有4 个  oracle 只支持 读提交 和 序列化 
           rollBackFor   针对哪些检查异常回滚              
                    
   
   
   
   
     
     
                 
  
  
  
  
  
  
     












  
  
  
  
  
  
    










  










       
        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值