티스토리 뷰

처음 하는 스프링 부트(Spring Boot), Controller와 JSP에 이어서.

1. DB 준비하기

스프링 포스팅에서 만들었던 DB를 그대로 사용할 예정입니다.
그렇기 때문에 그때 자료를 또 사용할게요.

일단 MariaDB는 깔았다고 치고 진행하겠습니다.
혹시라도 설치를 안하셨다면 아무 버전이나 가볍게 설치하셔도 상관없어요.

설치만 하고 아무것도 손을 안댄 상태의 DB는 이렇게 아무것도 없습니다.

againDB 라는 이름으로 DB를 하나 만들어볼게요.

다시 조회를 해보면 만든 DB가 보일거에요.

1
use againDB;
cs

방금 만든 againDB 를 사용한다는 명령어인데, 입력하면 DB 가 선택이 됩니다.
이제 테이블을 만든 차례네요.

1
2
3
4
create table disposable_table(
    disposable_string VARCHAR(32)
  , disposable_int INT(8)
);
cs

이렇게 쿼리창에 create 문을 입력하고 실행하면 테이블이 생성됩니다.

이제 insert 문으로 데이터를 입력한 다음, select 문으로 입력한 데이터를 조회해보면 잘 조회가 되네요.
DB 연결 연습용이기 때문에 데이터는 아주 간단히만 넣었습니다.

2. MyBatis 와 MariaDB 설정하기

다음은 부트에 MyBatis 와 MariaDB 를 설정할 차례입니다.

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
31
32
plugins {
    id 'org.springframework.boot' version '2.2.5.RELEASE'
    id 'io.spring.dependency-management' version '1.0.9.RELEASE'
    id 'java'
}
 
group = 'com.begin'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
 
repositories {
    mavenCentral()
}
 
dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    
    implementation 'javax.servlet:jstl'
    implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
    
    implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.2'
    implementation 'org.mariadb.jdbc:mariadb-java-client:2.1.2'
    
    runtimeOnly 'mysql:mysql-connector-java'
    testImplementation('org.springframework.boot:spring-boot-starter-test') {
        exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
    }
}
 
test {
    useJUnitPlatform()
}
cs

build.gradle 에 mybatis, mariadb dependency 를 추가합니다.
Dependency 를 추가한 다음엔 Refresh Gradle Project 를 꼭 잊지말고 해주세요.

다음은 application.yml 설정파일에 datasource 정보를 추가해줍니다.
이때, spring 은 이미 선언했기떄문에 mvc 와 같은 레벨에 datasource 를 추가해줘야 한다는 것만 주의해주세요.
xml 로 설정하는거에 비하면 상당히 편리한 방법이죠.

더이상의 설정은 필요없습니다.
스프링에서는 mybatis 설정을 위해 db-context.xml 안에 sqlSessionFactory, sqlSession 등을 설정하고,
mapper 의 위치를 지정해주는 등 여러 설정이 필요했었죠.
하지만, 부트에서는 오직 mybatis-spring-boot-starter 만 추가해주면 나머지는 알아서 다 해줍니다.

3. Mapper 및 Controller 만들기

이제 간단한 Mapper 를 만들어보고, DB 가 잘 조회되는지 테스트를 해보도록 하겠습니다.

우선 Mapper 패키지를 만들고, SampleMapper.java 인터페이스를 만들었습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
package com.begin.second.sample.mapper;
 
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
 
@Mapper
public interface SampleMapper {
 
    @Select(" select    disposable_string    \n" + 
            " from        disposable_table")
    String selectSampleData(); 
    
}
cs

class 가 아닌 interface 로 만들었다는 점만 유의해주시면 좋을 것 같아요.
부트에서는 많은 기능을 애노테이션(@)을 사용하는 것을 선호하는데요.
이 interface 를 Mapper 로 사용한다는 의미에서 @Mapper 를 선언해주었습니다.
그리고 selectSampleData 메소드에는 조회를 하는 용도로 사용할 것이며, 쿼리는 이렇게 쓰겠다는 의미로 @Select 를 사용했습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package com.begin.second.sample.controller;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
 
import com.begin.second.sample.mapper.SampleMapper;
 
@Controller
public class SampleController {
 
    @Autowired SampleMapper sampleMapper;
    
    @RequestMapping("/sample.bgn")
    public String sampleView() {
        System.out.println(sampleMapper.selectSampleData());
        return "sample";
    }
    
}
cs

다음은 Controller 에 방금 만든 Mapper 를 붙여주도록 하겠습니다.
Mapper 가 Controller 에 주입될 수 있도록 @Autowired 로 연결해주면 간단히 끝이 납니다.
다음은 조회가 잘 되는지 간단히 시스템 로그를 찍어보는 부분을 추가했습니다.
이제 서버를 실행시켜서 잘 돌아가는지 확인해볼까요.

4. 확인하기

버튼을 눌렀을때 로그가 잘 남았다면 DB 연결도 잘 되었고, 조회도 성공했다는 의미입니다.
이렇게해서 간단히 DB 연결까지 마무리해봤는데요.
다음엔 데이터를 가공해서 화면에 넘겨보는 기능까지 구현을 해보도록 하겠습니다.

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