티스토리 뷰

 
웹 개발을 하려면 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 설정하는 법에 대해서 알아볼께요.

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
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 29 30
글 보관함