Spring整合Mybatis|Spring整合Mybatis

Mybatis使用步骤简述:
1.编写实体类
2.编写mybatis主配置文件(记得绑定Mapper配置文件)
3.编写dao层接口
4.编写dao层接口对应的mapper配置文件
5.测试(拿到Sqlsession接口实例对象后,Mybatis通过代理dao实现DB操作)
Spring整合Mybatis|Spring整合Mybatis
文章图片



而Spring整合Mybatis其实可以分为三大步骤:
1.导包 2.写配置文件 3.测试
1.导包:

  • junit
  • mybatis
  • mysql数据库
  • spring相关
  • aop织入器
  • mybatis-spring整合包【重点】
  • 配置Maven静态资源过滤问题!
  • junit junit 4.12 mysql mysql-connector-java 5.1.47 com.mchange c3p0 0.9.5.2 javax.servlet servlet-api 2.5 javax.servlet.jsp jsp-api 2.2 javax.servlet jstl 1.2 org.mybatis mybatis 3.5.2 org.mybatis mybatis-spring 2.0.2 org.springframework spring-webmvc 5.1.9.RELEASE org.springframework spring-jdbc 5.1.9.RELEASE org.aspectj aspectjweaver 1.9.4 org.projectlombok lombok 1.18.22 src/main/java **/*.properties **/*.xml false src/main/resources **/*.properties **/*.xml false

  • 2.写配置文件
  • 2.1Mybatis-Spring(重点):核心 -> sqlSessionTemplate
  • 什么是MyBatis-Spring?
    MyBatis-Spring 会帮助你将 MyBatis 代码无缝地整合到 Spring 中。
    文档链接:http://mybatis.org/spring/zh/index.html
    如果使用 Maven 作为构建工具,仅需要在 pom.xml 中加入以下代码即可:


    org.mybatis
    mybatis-spring
    2.0.2



  • 整合实现方式一:核心 -> sqlSessionTemplate
  • 1.引入Spring配置文件spring-dao.xml,并把关键对象的创建交给 spring 控制反转(IOC),生成:连接池对象,SqlSessionFactory工厂类,SqlSession对象
  • 2.使用Spring的数据源替换Mybatis的数据源
  • 3.配置SqlSessionFactory,关联MyBatis配置文件
  • 4.注册sqlSessionTemplate,关联sqlSessionFactory
  • Spring整合Mybatis|Spring整合Mybatis
    文章图片
  • 5.需要给接口加 实现类;原来我们的所有操作,都使用sqlSession来执行;而现在都使用SqlsessionTemplate,即原来Mybatis的工作由Spring接管控制
    • public class UserMapperImpl implements UserMapper {
      • (方式二此步骤省略,不用注入SqlSessionTemplate)
        • //原来我们的所有操作,都使用sqlSession来执行;而现在都使用SqlsessionTemplate
          private SqlSessionTemplate sqlSession; public void setSqlSession(SqlSessionTemplate sqlSession) {
          this.sqlSession = sqlSession;
          }
          【Spring整合Mybatis|Spring整合Mybatis】public List selectUser() {
          UserMapper mapper = sqlSession.getMapper(UserMapper.class);
          return mapper.selectUser();
          }
          }
  • 6.将自己写的实现类,注入到Spring配置文件中。
  • Spring整合Mybatis|Spring整合Mybatis
    文章图片

  • 7.测试
  • /*
    * 1. 创建spring容器
    根据xml文件应用程序Context容器(上下文)
    classpath指配置文件的位置, 起点有java, resources. 写路径时相对这个起点去写
    * */
    @Test
    public void test () throws IOException {
    ApplicationContext context = new ClassPathXmlApplicationContext("spring-dao.xml");
  • //实现类在Spring容器中的名字: userMapper
    UserMapper userMapper = context.getBean("userMapper", UserMapper.class);
    for (User user : userMapper.selectUser()) {
    System.out.println(user);
    }
    }
整合实现方式二:dao继承Support类 , 直接利用 getSqlSession() 获得 , 然后直接注入SqlSessionFactory . 比起方式1 , 不需要管理SqlSessionTemplate , 而且对事务的支持更加友好 . 可跟踪源码查看
Spring整合Mybatis|Spring整合Mybatis
文章图片

其他和方式一相同

方式三:
一般在实际开发中,Spring可以配置扫描Dao接口包,动态实现Dao接口注入到spring容器中,从而省略了 创建dao接口实现类 这一步骤。





    推荐阅读