티스토리 뷰
웹 개발을 하려면 DB와의 연동이 필수죠? 이번 포스팅에서는 국내에서 가장 흔히 쓰이는 Mybatis를 이용해서 MySQL DB의 데이터를 가져와보겠습니다.
0. 준비물
. MySQL이 설치되어 있어야 합니다.
. 테이블 생성: create table home (name varchar(20), message(100));
. 데이터 입력: insert into home values('cusonar', 'Hello');
1. build.gradle의 dependencies 부분에 아래와 같이 dependency를 추가해줍니다. (자세한건 언젠가 설명할 날이 있겠죠?)
. compile은 compile time에 runtime은 runtime 시 필요한 dependency를 추가할 수 있습니다.
compile("org.mybatis.spring.boot:mybatis-spring-boot-starter:1.1.1") // Spring Boot에 mybatis lib 제공 runtime('mysql:mysql-connector-java') // MySQL 드라이버 제공
2. 프로젝트 우클릭 - Gradle - Enable Dependency Management 하게 되면 프로젝트 참조 라이브러리에 Gradle Dependencies가 추가됩니다. 그후 프로젝트 우클릭 - Gradle - Refresh Dependencies를 하면 새로 추가한 Dependency들이 다운로드 받아집니다.
3. 먼저 DataSource를 설정해봅니다. Spring Boot에서는 resource 밑에 있는 application.properties를 수정해서 아주 쉽게 DataSource를 만들 수 있습니다.
spring.datasource.driver-class-name= com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/test spring.datasource.username=test spring.datasource.password=test
4. HomeMapper 인터페이스를 아래와 같이 만듭니다.
지금부터는 package를 구분합니다. HomeMapper는 com.cusonar.home.mapper 안에 만들고, 기존의 HomeController는 com.cusonar.home.controller 안에, Home은 com.cusonar.home.domain 안으로 이동합니다.
package com.cusonar.example.home.mapper; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import com.cusonar.example.Home; @Mapper public interface HomeMapper { @Select("SELECT * FROM home WHERE name = #{name}") public Home readHome(@Param("name") String name); }
. HomeMapper에 @Mapper 어노테이션을 적용합니다. 이렇게 하면 자동으로 Mapper를 등록합니다.
. @Select 어노테이션은 select 구문에 사용하면 됩니다. 파라미터가 필요한 경우 #{파라미터 이름} 으로 해줍니다.
. 메소드의 파라미터에 @Param 어노테이션과 함께 파라미터 이름을 넣어줍니다.
5. HomeController에서 아래와 같이 사용하면 됩니다.
package com.cusonar.example; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.cusonar.example.home.mapper.HomeMapper; @RestController public class HomeController { @Autowired HomeMapper homeMapper ; @RequestMapping("/{name}") public Home home( @PathVariable String name) { Home home = homeMapper.readHome(name); return home; } }
6. 완료되면 localhost:8080/cusonar로 접속해봅니다. DB에 데이터가 있어야겠죠?
DB 연결 참 쉽죠? 원래는 DataSource와 SqlSessionFactoryBean을 통해 만들어야 했지만, Spring Boot에서는 자동으로 설정을 해줘버립니다.
다음에는 MyBatis 설정하는 법에 대해서 알아볼께요.
'Java > Spring Boot' 카테고리의 다른 글
5. Spring Boot Security 2편 - Custom Login (4) | 2016.06.08 |
---|---|
4. Spring Boot Security 시작하기 (0) | 2016.06.08 |
3. MyBatis Config 및 XML 파일로 분리하기 (2) | 2016.06.05 |
1. @PathVariable 활용해보기 (0) | 2016.06.04 |
0. Spring Boot 시작하기 (2) | 2016.06.04 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- rest login
- TypeScript
- angular 2
- RouteConfig
- angular2
- spring security
- test static import
- routerLink
- controller test
- 어드보케이트
- 기내반입유모차
- 티지유모차
- routeParams
- templateUrl
- 알고리즘
- Spring Boot
- styleUrls
- Ajax
- 거품정렬
- mockmvc
- 머지소트
- 유아동겸용
- CURL
- insert sort
- router-outlet
- mybatis
- 빠른 정렬
- routing
- angular
- 타보유모차
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함