tmkimm
Eddy
tmkimm
전체 방문자
오늘
어제
  • 분류 전체보기 (34)
    • DataBase (3)
    • Javascript (0)
    • Node.js (7)
    • Java (2)
    • Spring (3)
    • 기타 (13)
    • 사이드프로젝트 (2)
    • 생각 정리 (2)
    • 좋은글 공유 (1)

블로그 메뉴

    공지사항

    인기 글

    태그

    • docker
    • SSL
    • 설계
    • swagger
    • 부하테스트
    • Node.js
    • 생각정리
    • 삽질기록
    • 모니터링
    • API 문서 자동화
    • spring
    • Sentry
    • 논쟁
    • github
    • 에러트래킹
    • Git
    • mybatis
    • 사이드프로젝트
    • Java

    최근 댓글

    최근 글

    티스토리

    hELLO · Designed By 정상우.
    tmkimm

    Eddy

    [Spring] Spring Boot, H2, Mybatis 연동하기(Gradle)
    카테고리 없음

    [Spring] Spring Boot, H2, Mybatis 연동하기(Gradle)

    2023. 3. 6. 23:48

    Spring Boot 프로젝트를 생성하고 H2 DB를 이용해 Mybatis를 연동하는 내용을 정리해보겠습니다.

     

    개발환경
    • JDK 1.8
    • Grale
    • IntelliJ
    • Mac OS

     

     

    1. Spring Boot 프로젝트 생성

    https://start.spring.io/ 에 접속하여 Spring Boot 프로젝트를 생성합니다.

    Dependencies는 Spring Web, Thymeleaf, H2 Database, Mybatis를 추가합니다.

    "GENERATE" 버튼을 클릭하여 프로젝트를 생성하고 IntelliJ에서 폴더를 Open합니다.

     

    No matching variant 에러 발생 시 해결방법

    프로젝트를 Open하자마자 No matching variant of org.springframework.boot:spring-boot-gradle-plugin:3.0.4 was found 에러가 발생하는 경우 Java, SpringBoot, Gradle 간 버전 문제로,  호환되는 버전으로 맞춰줍니다.

    1. Spring boot 버전 변경

    build.gradle 에서 org.springframework.boot version을 2.7.0으로 변경합니다.

    plugins {
    	id 'java'
    	id 'org.springframework.boot' version '2.7.0'
    	id 'io.spring.dependency-management' version '1.1.0'
    }
    
    group = 'com.public'
    version = '0.0.1-SNAPSHOT'
    sourceCompatibility = '1.8'

    2. gradle/wrapper/gradle-wrapper.properties 파일에서 distributionUrl을 6.8.3 으로 변경합니다.

     

    다시 Build 해보면 성공한 것을 확인할 수 있습니다.

     


    2. H2 Database 설치

    H2 홈페이지에 접속하여 자신의 OS에 맞게 설치 파일을 다운로드 합니다.

    (Macbook 기준 All Platforms)

     

    압축을 해제하고 ./bin/h2.sh 파일을 실행합니다.

    웹 브라우저에 h2 console이 실행되고 연결 버튼을 클릭하면 데이터베이스에 접속됩니다.

    초간단!


    3. Mybatis 연동

    프로젝트 생성 시 Mybatis Dependency를 추가했기 때문에 바로 mybatis를 연동할 수 있습니다.

    src/main/resources 폴더에 application.properties 파일을 추가하여 설정 정보를 작성합니다.

    (h2 console에 있는 정보와 동일)

    spring.datasource.driver-class-name=org.h2.Driver
    spring.datasource.url=jdbc:h2:tcp://localhost/~/test
    spring.datasource.username=sa
    spring.datasource.password=
    spring.h2.console.enabled=true
    spring.sql.init.mode=always

    연결 테스트를 위해 src/main/java/패키지에 TestRunner 클래스를 추가합니다.

    @Autowired 애노테이션을 이용해 DataSource를 자동주입받고 Connect 정보를 가져옵니다.

    이때 @Component 애노테이션을 꼭 붙여줘야 합니다.

    @Component
    public class TestRunner implements ApplicationRunner {
    
        @Autowired
        DataSource dataSource;
    
        @Override
        public void run(ApplicationArguments args) throws Exception {
            Connection connection = dataSource.getConnection();
            System.out.println("URL = " + connection.getMetaData().getURL());
            System.out.println("UserName = " + connection.getMetaData().getUserName());
        }
    }

     

    Application을 실행시켜보면 정상 연결된 것을 확인할 수 있습니다.

     


    4. Database 초기화 스크립트 설정

    h2 database는 로컬에 설치했기 때문에 다른 사람과 공유할 수 없습니다.

    스프링이 제공해주는 Database 초기화 기능을 이용하여 어느 환경에서 실행하더라도 스키마를 일치시킬 수 있습니다.

    (docs.spring.io - 9.3. 기본 SQL 스크립트를 사용하여 데이터베이스 초기화)

    src/main/resources 폴더에 schema.sql, data.sql 파일을 생성합니다.

     

    schema.sql

    DROP TABLE IF EXISTS ITEM;
    
    CREATE TABLE ITEM
    (
        itemCode     VARCHAR(255)            PRIMARY KEY,
        itemName   VARCHAR(255)    NULL
    );

     

    data.sql

    INSERT INTO ITEM (itemCode, itemName) values ('ITEM001', '11');
    INSERT INTO ITEM (itemCode, itemName) values ('ITEM002', '22');

     

    애플리케이션을 실행시킨 후 h2 console을 확인해보면 테이블이 자동으로 생성되고 데이터가 INSERT된 것을 확인할 수 있습니다!

     

     

     

     

     

     

    참고글

    https://bcp0109.tistory.com/315

    https://atoz-develop.tistory.com/entry/Spring-Boot-MyBatis-%EC%84%A4%EC%A0%95-%EB%B0%A9%EB%B2%95

     

    저작자표시 (새창열림)
      tmkimm
      tmkimm
      ⭐️

      티스토리툴바