1/14/2019

스프링에 마리아 DB (+MySQL) 연동

스프링에서 오라클을 연동했던것 처럼, 마리아 DB도 연동하여 사용할 수 있습니다. 방법은 오라클 연동과 크게 다르지 않습니다.

또한 마리아 DB는 MySQL과 연결 방법이 동일하므로, 이 게시물에 있는 방법을 사용하면 MySQL도 동일하게 연동시킬 수 있습니다.

먼저, 만약이라도 발생할 에러를 방지하기 위해 새로운 스프링을 사용합니다.

프로젝트를 생성하고, 필요하다면 서버도 추가합니다. 여기서는 서버를 사용하지 않기 때문에 굳이 추가할 필요는 없습니다.

마리아 DB용 라이브러리를 이용합니다. 설명에 나와있는데, 위에서 언급했듯 마리아 DB는 물론 MySQL에도 적용됩니다.

pom.xml의 디펜던시스(depandencies) 내부에 코드를 추가합니다.

<!-- maria bd -->
<dependency>
    <groupId>org.mariadb.jdbc</groupId>
    <artifactId>mariadb-java-client</artifactId>
    <version>2.3.0</version>
</dependency>

<!-- org.mybatis/mybatis -->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.4.1</version>
</dependency>

<!-- mybatis-spring -->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>1.3.0</version>
</dependency>

<!-- spring-jdbc -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>${org.springframework-version}</version>
</dependency>        

<!-- spring-test -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>${org.springframework-version}</version>
    <scope>test</scope>
</dependency>

기존에 있는 junit test의 버전을 4.12로 변경합니다.

src/test/java 하위에 새로운 클래스를 생성하고, 코드를 추가합니다. 이 테스트용 클래스를 이용하여 마리아 DB의 접속을 확인할 수 있습니다.

package com.kuzuro.controller;

import java.sql.Connection;
import java.sql.DriverManager;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;


@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"file:src/main/webapp/WEB-INF/spring/root-context.xml"})
public class CTest {
 

  final String DRIVER = "org.mariadb.jdbc.Driver";
  final String URL = "jdbc:mariadb://127.0.0.1:3306";
  final String USER = "kuzuro";
  final String PASSWORD = "1111";
  
  @Test
  public void mariaTest() throws Exception{
   Class.forName(DRIVER);
   
   try(Connection con = DriverManager.getConnection(URL, USER, PASSWORD)){
    System.out.println(con);
   } catch(Exception e) {
    e.printStackTrace();
   }
  }
}

테스트시 변칙을 주기 위해 DRIVER, URL, USER, PASSWORD의 전역 변수를 이용했습니다.

테스트용 어노테이션 @Test 가 사용된 메서드를 우클릭 한 후, Run As → JUnit test를 클릭합니다.

정상적으로 접속하는데 성공된다면 콘솔(Console)창에는 연결 정보가 출력되고, JUnit창에는 이상없이 실행되었다는 에러가 없는 녹색바가 보입니다.

만약 DRIVER드라이버가 잘못되었을 경우 콘솔창에는 연결 정보가 출력되지 않으며, JUnit창에는 에러가 표시됩니다.

URL, USER, PASSWORD가 잘못되었을 경우 콘솔창에 에러가 표시되고m, JUnit창에는 특이하게도 이상없이 실행되었다며 에러가 없고 녹색바가 보입니다.

DRIVER에 의해 마리아 DB에 접근을 하는데까진 성공했지만 URL, USER, PASSWORD가 맞지 않아 로그인이 실패한것입니다.

이런 경우가 발생된다면 pom.xml에 라이브러리가 제대로 입력되지 않았거나, 마리아 DB의 포트번호를 잘못 입력했거나, 아이디 또는 패스워드가 틀린 경우이므로 다시 한번 확인하여 올바르게 수정하면 해결됩니다.

게시물 수정