zoukankan      html  css  js  c++  java
  • SSM :MyBatis与Spring的整合

    MyBatis与Spring的整合

    一:Spring整合MyBatis的准备工作:

    (1.)在项目中加入Spring,ByBatis及整合相关的jar文件

    (2.)建立开发目录结构,创建实体类

    (3.)创建数据访问接口

    (4.)配置SQL映射文件

    (5.)配置MyBatis配置文件

    二:实现Spring对MyBatis的整合

    (1.)配置数据源

    (2.)配置SqlSessionFactoryBean

    (3.)使用SqlSessionTemplate实现数据库的操作

    (4.)编写业务逻辑代码并测试

    三:注入映射器实现

    (1.)使用MapperFactoryBean主题映射器

    规则:1.映射器命名空间和映射器接口的名称相同

                 2.映射器元素的id和映射器接口方法相同

    (2.)使用MapperScannerConfigurer注入映射器(批量注入)

    规则:1.basePackage属性中可以包含多个包名,多个包名之间使用逗号或者分号隔开

                 2.MapperScennerConfigurer会为所有有他创建的映射器实现开启自动配置

                 3.若环境中出现于不同目的的配置了多个SqlSessionFactory实例,自动配置将无法完成

    四:配置声明式事务

    (1.)事务管理器类DataSourceTransactionManager

    增强事务:<tx:advice>

    (2.)事务传播机制:

    REQUIRED:默认值

    REQUIRES_NEW:表示总是开启一个新的事务

    MANDATORY:表示如果存在一个事务则支持当前事务,如果没有则抛出异常

    NESTED:表示如果存在当前一个活动事务,则创建一个事务作为当前事物的嵌套事务,如果没有事务,该取值与REQUIRED相同

    SUPPORTS:表示如果存在一个事务,则支持当前事务,如果没有当前事务,则安排这个事务挂起,然后执行该方法

    NEVER:表示总以非事务方法执行。如果存在一个活动事务,则抛出异常

    (3.)事务配置步骤

          导入tx和aop命名空间

          定义事务管理器Bean并为其注入数据源Bean

          通过<tx:advice> 配置事务增强,绑定事务管理器并针对不同方法定义事务规则

          配置切面,将事务增强与方法切入点组合

    五:使用注解实现声明事务处理:

    @transactional注解的属性

    Propagation:枚举型

    Isolation:枚举型

    readOnly:布尔型

    timeout:int类型

    rollbackFor:一组Class累的实例,必须是Throwable的子类

    rollbackForClassName:一组Class类的名称,必须是Throwable的子类

    noRollbackFor:一组Class类的实例,必须是Throwable的子类

    noRollbackForClassName:一组Class类的名称,必须是Throwable的子类

  • 相关阅读:
    条件变量:为什么要与互斥锁配套使用?为什么要使用while来避免虚假唤醒?
    【转】高性能IO之Reactor模式
    LeetCode127:单词接龙
    CF1245F: Daniel and Spring Cleaning
    权值线段树学习笔记
    luogu_4317: 花神的数论题
    luogu_2605: 基站选址
    入门平衡树: Treap
    CF1244C: The Football Season
    luogu_1156: 垃圾陷阱
  • 原文地址:https://www.cnblogs.com/dkz1/p/7757923.html
Copyright © 2011-2022 走看看