Spring-mybatis

 怎样通过Spring整合Mybatis来实现业务

目录

Spring-mybatis_第1张图片

1.导入依赖

    
        
            junit
            junit
            3.8.1
            test
        
        
            mysql
            mysql-connector-java
            8.0.33
        
        
            org.mybatis
            mybatis
            3.5.13
        
        
            org.springframework
            spring-webmvc
            6.0.13
        
        
        
            org.springframework
            spring-jdbc
            6.0.13
        
        
        
            org.aspectj
            aspectjweaver
            1.9.9.1
        
        
            org.mybatis
            mybatis-spring
            3.0.2
        
    

2. spring配置文件

spring整合mybatis之后,就不再需要mybatis的配置文件



    
    
    
        
        
        
        
    

    
    
        
        
        
    

    
    
        
        
    

Spring-mybatis_第2张图片

 上面的配置文件是固定的,配置文件需要三个bean

  • dataSource                                     用来连接数据库
  • sqlSessionFactory                        用来创建sqlSession
  • sqlSession                                      用来创建sqlSession的bean

 3.编写实体类(原mybatis的步骤)

public class User {
    private int id;
    private String name;
    private int age;

}

4.编写接口(原mybatis的步骤)

public interface UserMapper {

   public List selectUser();

}

5.编写xml映射文件(原mybatis的步骤)




    

6.编写接口实例

public class UserMapperImpl implements UserMapper{

    //之前使用Mybatis时候,我们用的是sqlSession,现在用Spring整合Mybatis,我们使用Spring提供的SqlSessionTemplate(相当于sqlSession)
    private SqlSessionTemplate sqlSessionTemplate;

    public void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate) {
        this.sqlSessionTemplate = sqlSessionTemplate;
    }
    @Override
    public List selectUser() {
        UserMapper mapper = sqlSessionTemplate.getMapper(UserMapper.class);
        return mapper.selectUser();
    }
}

 

7.将实例注册到spring中


        
    

8.测试

直接获取实例的bean即可

public class MyTest {

    @Test
    public void selectTest(){
        ApplicationContext context = new ClassPathXmlApplicationContext("spring-mybatis.xml");
        UserMapper userMapperImpl = (UserMapper) context.getBean("UserMapperImpl");
        List users = userMapperImpl.selectUser();
        for (User user : users) {
            System.out.println(user);
        }
    }
}

总的来说,使用Spring整合Mybatis,思想还是不变,只不过形式是采用了Spring的ioc容器

9.第二种方式

  • Spring提供了一个SqlSessionDaoSupport类,可以通过getSqlSession方法直接获取SqlSession,原本我们是通过SqlSessionTemplate作为中间人,现在通过这个方法我们不再需要SqlSessionTemplate
public class UserMapperImpl2 extends SqlSessionDaoSupport implements UserMapper{

    //这个类继承了SqlSessionDaoSupport,可以直接get一个SqlSession
    @Override
    public List selectUser() {
        SqlSession sqlSession = getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        return mapper.selectUser();
    }
}

 将这个类放到Spring中:

  
        
    

测试: 

   @Test
    public void selectTest2(){
        ApplicationContext context = new ClassPathXmlApplicationContext("spring-mybatis.xml");
        UserMapper userMapperImpl2 = (UserMapper) context.getBean("UserMapperImpl2");
        List users = userMapperImpl2.selectUser();
        for (User user : users) {
            System.out.println(user);
        }
    }

你可能感兴趣的:(spring,mybatis)