edenDev 2023. 2. 8. 20:22

Spring MVC - MariaDB 연결 테스트

 

본 포스팅의 예제는 STS(Spring Tool Studio) 또는 Eclipse를 사용하지 않고 intellij를  통해 구현하고 있습니다.

그래서 기존의 생성된 STS(Spring Tool Studio) 생성된 Spring 프로젝트의 스프링 설정 파일명과 프로젝트 구조가

약간 다를 수 있습니다. Intellij 스프링 mvc 프로젝트 생성 포스팅을 참고해주시면 감사하겠습니다.


1. MariaDB 설치 및 DB 추가

이번 프로젝트에서는 orcale 이 아닌 mariadb를 사용 하기 때문에 mariadb를 설치하고 스키마를 추가 했습니다.

1
2
-- 스키마 생성
create schema 'eden' default character set utf8 collate utf8_bin;
cs

이제 java를 이용해서 jdbc 연결이 정상적으로 이루어지는지 테스트를 하기 앞서 jUnit에 대해서 간단히 살펴보도록 하겠습니다.


2. jUnit - 기본적으로 알아야 될 사항

  • @Test : 테스트할 내용을 메서드 안에  기재하고 @Test 어노테이션을 추가하면 테스트용 코드로 간주하고 테스트를 진행
  • @Before : 모든 테스트에 작업에 앞서 준비되어야 하는 내용을 작성해서 메서드에 추가하는 어노테이션
  • @After : 테스트 작업이 끝난 후 자동으로 실행되는 메서드에 추가하는 어노테이션
  • org.junit.Assert.asertxxx :  테스트중에 발생되는 값을 확신하는 용도로 테스트 중간에 특정 값이나 상태를 예상하고 체크하는 용도

3. MariaDB 라이브러리 추가

pom.xml

1
2
3
4
5
6
7
        <!-- mariaDB -->
        <dependency>
            <groupId>org.mariadb.jdbc</groupId>
            <artifactId>mariadb-java-client</artifactId>
            <version>3.1.1</version>
        </dependency>
 
cs

4. JDBC 연결 테스트 코드 추가

test/java/하위패키지에 테스트 클래스를 생성하고 아래와 같이 작성해주세요.

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
package com.eden.euphoria;
 
import org.junit.Test;
 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
 
public class MariaDBConnectionTest {
 
    private static final String DRIVER = "org.mariadb.jdbc.Driver";
    private static final String URL = "jdbc:mariadb://svc.gksl2.cloudtype.app:30708/eden";
    private static final String USER = "아이디";
    private static final String PASSWORD = "패스워드";
 
    @Test
    public void testConnection() throws Exception {
        Class.forName(DRIVER);
        try(Connection connection = DriverManager.getConnection(URL, USER, PASSWORD)) {
            System.out.println(connection);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}
cs

정상적으로 테스트가 완료 되었다면 콘솔에 아래와 같이 출력될 겁니다.

1
org.mariadb.jdbc.Connection@23348b5d
cs