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
'Spring > etc' 카테고리의 다른 글
[Spring] Transaction (Declarative, Programmatic) 관리 (0) | 2022.04.08 |
---|---|
[Spring] RestTemplate이란 (0) | 2022.02.22 |
[Spring] ResponseBodyAdvice 사용 ( + @ControllerAdvice ) (0) | 2022.02.14 |
[Spring] Spring Boot Profile 환경별 설정 (2.4버전) (1) | 2022.01.29 |
[Spring] 설정 파일 분리 및 여러 개 설정하기 (application.yml) (0) | 2022.01.26 |