SMALL

Mybatis란

Mybatis는 Psersistence Framework 중에 하나로 SQL Mapper Framework에 해당한다.

https://joomn11.tistory.com/34

위의 글에서 해당 내용에 대한 정리를 해두었으니 참고하면 이해가 잘 될 것이다.

 

Mybatis 특징

  • 복잡한 쿼리나 다이나믹 쿼리에 유용하다
  • 비즈니스 코드와 SQL 쿼리를 분리해서 관리 가능하다 ( 간결성, 코드 유지 보수성 향상 )

 

SpringBoot + Mybatis 

spring-boot의 mybatis-spring-boot-starter를 활용하여 스프링 프로젝트에서 손쉽게 Mybatis를 사용할 수 있다. 

 

mybatis-spring-boot-starter의 장점

  • spring에서 추가된 mybatis bean 등록을 자동으로 해준다
    • SqlSessionFactoryBean, SqlSessionTemplate

 

 

pom.xml

		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>2.2.2</version>
		</dependency>

 

mapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.sample.dao.MapperDAO">
	<select id="selectAll"
		resultType="com.sample.dto.UserDto">
		SELECT *
		FROM user_test
	</select>
	<insert id="insert" parameterType="com.sample.dto.UserDto">
		INSERT INTO user_test (seq, name, country) values ( #{seq}, #{name},
		#{country})
	</insert>
</mapper>

 

Mapper interface

@Repository
@Mapper
public interface MapperDAO {
    List<UserDto> selectAll() throws Exception;
    void insert(UserDto user);
}

 

Service 

@Service
public class UserService {

    @Autowired
    private MapperDAO mapperDao;
    
    public List<UserDto> selectAll() throws Exception {
        return mapperDao.selectAll();
    }
    
    public void insert(UserDto user) {
        mapperDao.insert(user);
    }
}

 

application.yml 설정

mybatis:
  mapper-locations:
  - com/sample/mapper/*.xml
  config-location: classpath:mybatis-config.xml
  • mybatis.mapper-locations : mapper관련 xml 파일이 존재하는 디렉터리의 위치
  • mybatis.config-location : mapper configuration관련 xml을 사용한다면 해당 위치에 대한 정보

 

mybatis github sample

https://github.com/mybatis/spring/tree/master/src/test/java/org/mybatis/spring/sample

 

mybatis사이트 가이드

http://mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/#

 

LIST

+ Recent posts