mybatis和spring整合

整合思路

  • 1、让spring管理SqlSessionFactory
  • 2、让spring管理mapper对象和dao。
    使用spring和mybatis整合开发mapper代理及原始dao接口。
    自动开启事务,自动关闭 sqlsession.
  • 3、让spring管理数据源( 数据库连接池)

整合结构

mybatis和spring整合_第1张图片
框架

导jar包

  • mybatis框架的包
  • spring框架的包
  • 数据库驱动包
  • mybatis和spring的整合包

配置文件

Mybatis的配置文件SqlMapConfig.xml

  • 只配置别名、settings、mappers,数据源不在这里配置

    
    
    
      
      
          
      
    
      
      
          
      
          
      
    
    
    

applicationContext.xml

1、数据源(dpcp连接池)
2、SqlSessionFactory
3、mapper或dao







    
    
    
    
    
    





    
    
    
    




    



 
    
    




    
    
    
    
    


测试(以测试dao为例)

package test.dao;

import dao.UserDao;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
mport org.springframework.context.support.ClassPathXmlApplicationContext;
import po.User;

public class UserDaoImplTest {

private ApplicationContext applicationContext;

@Before
public void setUp(){
    //创建spring 容器
    applicationContext = new ClassPathXmlApplicationContext("config/spring/applicationContext.xml");
}
@Test
public void testFindUserById(){
    //从spring容器中获取UserDao这个bean
    UserDao userDao = (UserDao) applicationContext.getBean("userDao");
    User userById = userDao.findUserById(1);
   System.out.println(userById);applicationContext.getBean("userById");

 //测试mapper
   UserMapper userMapper = (UserMapper) 
    User userById = userMapper.findUserById(1);
  }
}

原始dao整合

  • 使用SqlsessionTemplate或SqlSessionDaoSupport类在DAO实现类中注入SqlSessionFactory来创建SqlSession。
  • 开发dao(编写UserDao 、UserDaoImpl)
  • 配置dao (在applicationContext.xml配置)
  • 接口测试


    mybatis和spring整合_第2张图片
    UserDao
mybatis和spring整合_第3张图片
UserDaoImpl
mybatis和spring整合_第4张图片
dao配置

mybatis和spring整合_第5张图片
dao整合的目录结构图

整合mapper

  • 基于MapperFactoryBean整合
  • 基于MapperScannerConfigurer整合
  • 编写配置文件
  • 编写Usermapper.java Usermapper.xml


    mybatis和spring整合_第6张图片
    mapper整合的目录结构图

你可能感兴趣的:(mybatis和spring整合)