Information Security Study

240214 스트링부트(DB 연동) 본문

네트워크 캠퍼스/Spring Boot

240214 스트링부트(DB 연동)

gayeon_ 2024. 2. 14. 16:04

스프링부트와 데이터베이스 연동

 

MySQL Workbench에 blog_test schema 추가

 

 

build.gradle dependencies 추가

implementation 'mysql:mysql-connector-java:8.0.33'

 

 

application.yml

spring:
  mvc:
    view:
      prefix: /WEB-INF/views/
      suffix: .jsp
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/DB명
    username: 계정명
    password: 비밀번호
    driver-class-name: com.mysql.cj.jdbc.Driver

mybatis:
  mapper-locations: classpath:mybatis/mapper/**/**.xml

 

 

ConnectionTestRepository.java

package kr.swu.spring_blog.repository;

import org.apache.ibatis.annotations.Mapper;

@Mapper // 빈 컨테이너에 마이바티스 호출 메서드 정의용으로 적재
public interface ConnectionTestRepository {
    // getNow() 실행 시 호출할 SQL구문은 xml파일 내부에 작성한다.
    String getNow(); // 실제로는 쿼리문이 호출되어야 한다.

}

 

 

ConnectionTestMapper.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">
<!-- xml파일에는 SQL구문만 작성하기 때문에 자바 메서드를 선언할 연동 인터페이스를 패키지부터 적어 매칭한다. -->
<mapper namespace="kr.swu.spring_blog.repository.ConnectionTestRepository">

    <!-- ConnectionTestRepository 인터페이스의 getNow() 메서드를 호출하면 아래 쿼리문이 실행된다.
     리턴타입은 문자열, 자바 내장 자료형은 소문자로만 작성해야 한다. 리스트도 단일 자료처럼 작성한다. -->
    <select id="getNow" resultType="string">
        SELECT now();
    </select>

</mapper>

 

 

테스트코드

ConnectionTestRepositoryTest.java 

package kr.swu.spring_blog.repository;

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;


@SpringBootTest // @Mapper로 적재된 마이바티스 인터페이스 인식을 위해 애너테이션 작성
public class ConnectionTestRepositoryTest {

    @Autowired // 테스트코드 작성 시에는 자동주입이 안 되기 때문에 해당 애너테이션을 필드 위에 붙여야 한다.
    ConnectionTestRepository connectionTestRepository;

    @Test
    public void getNowTest() {
        System.out.println("얻어온 현재 시간: " + connectionTestRepository.getNow());
    }
}

 

 

자바에서 DB쪽으로 SQL 쿼리문결과를 요청하는 상황이다.

 

테스트코드를 실행해 보면 스프링부트와 mysql이 잘 연동이 된 것을 알 수 있다.