티스토리 뷰
반응형
1. gradle에 의존성 추가
본 작업은 gradle로 했습니다. 그렇기에 제일 먼저 디펜던시를 추가해 줍니다.
dependencies {
compile 'org.mybatis.spring.boot:mybatis-spring-boot-starter:1.3.2'
compile 'org.springframework.boot:spring-boot-starter-jdbc'
compile 'mysql:mysql-connector-java'
}
2. MySQL관련 config 설정
src > main > resources에 application.yml의 파일을 생성해줍니다.
spring:
datasource:
url: jdbc:mysql://ip주소:port번호/DB이름?characterEncoding=utf8
username:
password:
driver-class-name: com.mysql.cj.jdbc.Driver
mybatis:
type-aliases-package: kr.co.fastcampus.eatgo
mapper-locations: mybatis/mapper/**/*.xml
3. DB에 쿼리를 날릴 Mapper 작성하기
위에서 mapper-locations을 보면 알 수 있듯이 우린 저 경로에 .xml 파일을 생성해줘야한다.
우선 resources > mybatis에 mybatis-config.xml 파일을 생성해준다. mapper 파일들이 추가될 때마다 여기 config 설정에서 하나씩 추가해서 사용하면 될 것이다.
<?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>
<mappers>
<mapper resource="BoardMapper.xml"/>
</mappers>
</configuration>
자 이제 게시판의 조작을 담당할 BoardMapper.xml를 생성해 보자!
resources > mybatis > mapper 디렉터리를 생성하고 BoardMapper.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="kr.co.fastcampus.eatgo.domain.BoardRepository">
<select id="getBoards" resultType="java.util.HashMap">
SELECT * FROM board;
</select>
</mapper>
4. Controller > Service > Repository 만들기
필자는 main > java > 패키지명에 interface, application, domain라는 디렉터리를 생성하였는데 interface에 컨트롤러, application에 서비스, domain에 Repository를 생성하였다.
간단하게 소스만 추가하도록 하겠다.
@RestController
public class BoardController {
@Autowired
private BoardService boardService;
@GetMapping("/v1/board")
public List<Map<String, Object>> getBoards() {
return boardService.getBoards();
}
}
public interface BoardService {
List<Map<String, Object>> getBoards();
}
@Service
public class BoardServiceImpl implements BoardService {
@Autowired
private BoardRepository boardRepository;
@Override
public List<Map<String, Object>> getBoards() {
return boardRepository.getBoards();
}
}
@Mapper
@Repository
public interface BoardRepository {
List<Map<String, Object>> getBoards();
}
이렇게 하면 기본적인 셋팅이 끝나게 되며 /v1/board로 접근할 경우
아래와 같이 DB의 데이터가 넘어 오는 것을 확인할 수 있다.
반응형
'Back-end > Spring' 카테고리의 다른 글
Mock이란? (0) | 2020.02.18 |
---|---|
스프링부트 Mybatis에서 스네이크를 카멜케이스형태로 자동 변환 (0) | 2020.02.11 |
Spring 싱글톤과 IoC컨테이너 (0) | 2019.05.31 |
Spring 오브젝트와 의존관계 (0) | 2019.05.28 |
스프링 코어#1 (DI) (0) | 2019.05.18 |
댓글