zoukankan      html  css  js  c++  java
  • Spring对JDBC的支持

    一、使用JdbcTemplate对象来处理CRUD操作。

    不推荐使用JdbcDaoSupport。

    二、使用NameParameterJdbcTemplate

    该对象没有无参构造器,必须指定参数。
    可以为参数起名字。便于维护,但比较麻烦。可以传入对象修改数据库

    三、事务管理

    1. 配置事务管理器
    <bean id="transactionManager"
        class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"></property>
    </bean>
    
    1. 启用事务注解
    <tx:annotation-driven transaction-manager="transactionManager" />
    
    1. 使用
      在要使用事务的方法上加上@Transactional注解便可以使用事务

    四、事务的传播属性

    • 当事务方法比另一个事务方法调用时,必须指定事务应该如何传播。例如:方法可能继续在现有事务中运行,也可能开启一个新事务,并在自己的事务中运行
    • 事务的传播行为可以由传播属性指定。Spring定义了7中类传播行为
    • 使用propagation指定事务的传播行为,默认为REQUIRED。
    • 使用isolation属性指定事务的隔离级别
    • 使用rollbackForXXX设置事务回滚,默认所有异常都回滚
    • 使用readOnly指定事务是否为只读。可以帮助优化数据库引擎。若真的只是读取只,应设置readOnly=true
    • 使用timeout指定强制回滚之前事务可以占用的时间。
    传播属性 描述
    REQUIRED 如果有事务在运行,当前方法就在这个事务内运行,否则,就启动一个新的事务,并在自己的事务内运行
    REQUIRED_NEW 当前的方法必须启动新事务,并在它自己的事务内运行。如果有事务正在运行,应该将它挂起
    SUPPORTS 如果有事务在运行。当前的方法就在这个事务内运行,否则它可以不运行在事务
    NOT_SUPPORTE 当前的方法不应该运行在事务中,如果有运行的事务,将它挂起
    MANDATORY 当前方法必须运行在事务内部,如果没有正在运行的事务,就抛出异常
    NEVER 当前方法不应该运行在事务中,如果有运行的事务,就抛出异常
    NESTED 如果有事务在运行,当前的方法就应该在这个事务的嵌套事务内运行。否则,就启动一个新的事务,并在它自己的事务内运行
  • 相关阅读:
    基于散列的集合 HashSetHashMapHashTable
    英文工作邮件
    英语日常口语
    统计数组中各个元素出现的次数,元素取值范围为:1到N
    编写一个程序,指定一个文件夹,能自动计算出其总容量
    四则运算随机生成100题
    常用异常处理情况
    第三讲 动手动脑-2
    第三讲 动手动脑-1
    使用类的静态字段和构造函数,可以跟踪某个类所创建对象的个数。请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象
  • 原文地址:https://www.cnblogs.com/ylcc-zyq/p/12547971.html
Copyright © 2011-2022 走看看