- 마이바티스(Mybais)는 Mapper 인터페이스를 제공한다.
- DAO대신 mapper를 사용하면 DAO를 만들지 않고 interface만을 이용해서 간편히 개발할 수 있다.
- mybatis는 java code와 sql문을 분리하여 편리하게 관리하도록 한다.
- SQL문은 *.xml 형식으로 저장한다.
- DB에 질의할 쿼리문을 관리하는 Mapper파일에 요청한다.
의존성 추가
<!-- mybatis 사용 위해 종속성 포함 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.2</version>
</dependency>
<!-- mySql 사용 위해 종속성 포함 -->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
DB 연결, mybatis, 초기 shema.sql&data.sql 실행 설정
# database
spring.datasource.url=jdbc:mysql://localhost:3307/sp?characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=sp3245sp!@
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# mybatis
mybatis.config=mybatis/mybatis-config.xml
mybatis.mapper-locations=mybatis/mapper/*.xml
# schema.sql, data.sql excute in not embeded db
spring.sql.init.mode=always
mybatis config file 작성
- mapUnderscoreToCamelCase : Mybatis의 DTO(VO) 리턴 값을 Camel Case로 변환시킴
- callSettersOnNulls : ResultType 이 HashMap 일 때 값이 null 인 것이 누락되어 나오는데, null을 포함시켜 return 하게 한다.
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<setting name="mapUnderscoreToCamelCase" value="true" />
<setting name="callSettersOnNulls" value="true"/>
</settings>
</configuration>