「MyBatis-Spring」 MyBatis 与Spring整合

前言

mybatis-spring的官网地址:https://github.com/mybatis/spring

demo项目地址:https://gitee.com/shuashua-world/shuashua-blog/tree/master/demo/mybatis-simple-demo

环境配置

版本要求

maven依赖


  
    org.mybatis
    mybatis-spring
    2.0.7
  
  
    org.mybatis
    mybatis
    3.5.11
  
  
    org.springframework
    spring-context
    5.3.20
  
  
    org.springframework
    spring-jdbc
    4.3.13.RELEASE
  
  
  
    com.alibaba
    druid
    1.1.10
  
  
  
    c3p0
    c3p0
    0.9.1.2
  

  
  
    mysql
    mysql-connector-java
    5.1.39
  

  
    org.projectlombok
    lombok
    1.18.24
    true
  

  
    ch.qos.logback
    logback-classic
    1.2.3
  

application.xml(spring配置)


  
  
  
  



  
  
  



  
  

sqlSessionFactory

在基础的 MyBatis 用法中,是通过 SqlSessionFactoryBuilder 来创建 SqlSessionFactory 的。而在 MyBatis-Spring 中,则使用 SqlSessionFactoryBean 来创建。

需要注意的是,这个配置文件并不需要是一个完整的 MyBatis 配置。确切地说,任何环境配置(),数据源()和 MyBatis 的事务管理器()都会被忽略SqlSessionFactoryBean 会创建它自有的 MyBatis 环境配置(Environment),并按要求设置自定义环境的值。

如果 MyBatis 在映射器类对应的路径下找不到与之相对应的映射器 XML 文件,那么也需要配置文件。这时有两种解决办法:

  1. 第一种是手动在 MyBatis 的 XML 配置文件中的 部分中指定 XML 文件的类路径;
  2. 第二种是设置工厂 bean 的 mapperLocations 属性。

其他:在容器管理事务的时候,你可能需要的一个属性是 transactionFactoryClass

如果你使用了多个数据库,那么需要设置 databaseIdProvider 属性。

小贴士:自 1.3.0 版本开始,新增的 configuration 属性能够在没有对应的 MyBatis XML 配置文件的情况下,直接设置 Configuration 实例。

mybatis-config.xml(mybatis配置)



  
    
  

  
    
  

测试

public static void main(String[] args) throws PropertyVetoException, SQLException {
    //读取spring容器
    ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
    //从容器中获取dataSource
    DataSource dataSource = applicationContext.getBean(DataSource.class);

    StudentMapper studentMapper = applicationContext.getBean(StudentMapper.class);
    studentMapper.selectAll().forEach(System.out::println);
}

事务

一个使用 MyBatis-Spring 的其中一个主要原因是它允许 MyBatis 参与到 Spring 的事务管理中。而不是给 MyBatis 创建一个新的专用事务管理器,MyBatis-Spring 借助了 Spring 中的 DataSourceTransactionManager 来实现事务管理

一旦配置好了 Spring 的事务管理器,你就可以在 Spring 中按你平时的方式来配置事务。并且支持 @Transactional 注解和 AOP 风格的配置。在事务处理期间,一个单独的 SqlSession 对象将会被创建和使用。当事务完成时,这个 session 会以合适的方式提交或回滚。

事务配置好了以后,MyBatis-Spring 将会透明地管理事务。

展开阅读全文

页面更新:2024-04-22

标签:事务管理   管理器   容器   路径   属性   对象   事务   版本   环境   基础

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top