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的子类

  • 相关阅读:
    现在连Linux都搞不懂,当初我要是这么学习操作系统就好了!
    一时技痒,撸了个动态线程池,源码放Github了
    Java线程池ThreadPoolExecutor使用和分析(一)
    canch----1.对缓存的思考
    1.java 内存数据库--H2数据库使用指南
    What’s the difference between persist, save, merge and update? Which one should you use?
    primary key's generator in JPA entity
    STM32F103驱动M24256 256k存储芯片进行读写
    【Proteus+51单片机学习笔记】-51/52系列单片机简介
    【STM32项目笔记】STM32CubeMX+Keil+Proteus联合实现LED闪烁
  • 原文地址:https://www.cnblogs.com/dkz1/p/7757923.html
Copyright © 2011-2022 走看看