mybatis和spring整合



第一种方法


1.需要导入的包:

pom.xml:

   

        
            junit
            junit
            4.12
            test
        
        
            mysql
            mysql-connector-java
            8.0.11
        
        
            org.mybatis
            mybatis
            3.5.2
        
        
            org.springframework
            spring-webmvc
            5.1.9.RELEASE
        
        
            org.springframework
            spring-jdbc
            5.3.14
        
        
            org.aspectj
            aspectjweaver
            1.9.6
        
        
            org.mybatis
            mybatis-spring
            2.0.6
        

        
            org.projectlombok
            lombok
            RELEASE
            compile
        
    

    
        
            
                src/main/java
                
                    **/*.xml
                
                false
            
        
    



2.回忆Mybatis


  • 编写实体类
  • 编写核心配置文件
  • 编写接口
  • 编写Mapper.xml
  • 测试

3.Mybatis-Spring




UserMapper接口:

package com.kakafa.mapper;
import com.kakafa.pojo.User;
import java.util.List;

public interface UserMapper {

        public List selectUser();

}


UserMapper.xml:

<?xml version="1.0" encoding="UTF-8" ?>





    




UserMapperImpl:

package com.kakafa.mapper;
import com.kakafa.pojo.User;
import org.mybatis.spring.SqlSessionTemplate;
import java.util.List;

public class UserMapperImpl implements UserMapper{

    //我们所有操作都使用sqlSession来执行,现在都使用sqlSessionTemplate,因为习惯用sqlSession,所以这里命名为sqlSession
    private SqlSessionTemplate sqlSession;

    //需要有set方法才能够在spring的bean注册中注入sqlSession的值-通过set方法注入:
    public void setSqlSession(SqlSessionTemplate sqlSession) {
        this.sqlSession = sqlSession;
    }

    @Override
    public List selectUser() {
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        List users = mapper.selectUser();
        return users;
    }
    
}

mybatis-config.xml:

<?xml version="1.0" encoding="UTF-8" ?>




    
    
        
    




spring-dao.xml:spring配置文件,把mybatis配置整合到spring配置中

<?xml version="1.0" encoding="UTF-8"?>



    
    
    
        
        
        
        
    

    
    
        
        
        
        
    

    
    
        
        
    

    
        
        
    



test:

import com.kakafa.mapper.UserMapper;
import com.kakafa.pojo.User;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import java.io.IOException;
import java.util.List;

public class MyTest {

    @Test
    public void test() throws IOException {

        ApplicationContext context = new ClassPathXmlApplicationContext("spring-dao.xml");
        UserMapper mapper = context.getBean("userMapperImpl",UserMapper.class);
        List users = mapper.selectUser();

        for (User user : users) {
            System.out.println(user);
        }

    }
}


第二种方法:简化了第一种方法


UserMapperImpl2:

package com.kakafa.mapper;
import com.kakafa.pojo.User;
import org.apache.ibatis.session.SqlSession;
import org.mybatis.spring.support.SqlSessionDaoSupport;
import java.util.List;

public class UserMapperImpl2 extends SqlSessionDaoSupport implements UserMapper{

    @Override
    public List selectUser() {

        SqlSession sqlSession = getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        List users = mapper.selectUser();
        return users;
    }
}

spring-dao.xml:

<?xml version="1.0" encoding="UTF-8"?>