본문 바로가기

💖 Java/SpringMVC

[ Spring ] 게시판 만들기(3) - MySQL, MyBatis 연동

728x90

* 진행하기에 앞서 MySQL에서 계정을 생성해준 뒤 진행해야 한다 (방법은 아래 주소 참고)

modziw.tistory.com/38

 

[ MySQL ] Database 생성 및 계정 생성 방법

MySQL Database, 계정 생성하기   MySQL Command Line Client를 실행해서 root 계정으로 접속해서 데이터베이스를 만들어준다 >> 계정 생성하기 create database 계정명; >> 전체 계정 보기 show databases; 다..

modziw.tistory.com

 

pom.xml 수정 및 추가

 

MySQL 계정을 만들어 줬다면

프로젝트 내의 pom.xml파일을 실행하여 아래 라이브러리를 추가해준다.

 

 

MySQL : MySQL 라이브러리

MyBitis 3.4.1 : MyBitis 프레임워크

MyBitis-Spring : Spring과 MyBitis를 연결하는 라이브러리

Spring-jdbc : jdbc 라이브러리

Spring-test : 스프링과 MyBitis가 정상적으로 연동되었는지 확인하기 위해 필요한 라이브러리

 

       <!-- MySQL -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.6</version>
        </dependency>
 
        <!-- MyBatis 3.4.1 -->
        <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.1</version>
        </dependency>
 
 
        <!-- MyBatis-Spring -->
        <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.3.0</version>
        </dependency>
 
        <!-- Spring-jdbc -->
        <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
 
        <!-- Spring-test -->
        <!-- https://mvnrepository.com/artifact/org.springframework/spring-test -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>		

 

 

그리고 Junit의 버전을 수정해준다

 

 

 

root-context.xml 수정

 

 

root-context.xml -> Namespaces

aop, beans, context, jdbc, mybatis-spring 5개를 선택하여 추가해준다

 

 

 

 

 

 

root_context.xml의 Source에서 DataSourcesqlSession을 설정해준다

    <!-- MySQL dataSource -->
    <bean id="dataSource"
        class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
        <property name="url"
            value="jdbc:mysql://아이피:포트번호/데이터베이스명">
        </property>
        <property name="username" value="root"></property>
        <property name="password" value="root계정 비밀번호"></property>
    </bean>   
    
    
    <!-- mybatis SqlSession -->
    <bean id="sqlSession" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"></property>
    </bean>

 

 

 

 

 Connection Test Class 작성 (MySQL, MyBatis)

 

 

 

 

root_context.xml 파일에 작성한 내용이 제대로 작동하는지 확인하기위해 test class를 작성해준다

src/test/java 폴더속 패키지 -> new -> Class

 

 

 

 

MySQLConnectionTest Class를 만들어 준 뒤, 아래 내용을 추가해준다

(root_context.xml파일 경로 같은지 확인 해줘야한다!)

 

import java.sql.Connection;

import javax.inject.Inject;
import javax.sql.DataSource;
 
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 MySQLConnectionTest {
    
    @Inject
    private DataSource ds;
 
    @Test
    public void testConnection() throws Exception {
 
        try (Connection con = ds.getConnection()) {
 
            System.out.println("\n >>>>>>>>>> Connection 출력 : " + con + "\n");
 
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
}

 

 

 

 

위와 같은 방법으로 MyBatisTest Class도 작성해준다.

(root_context.xml파일 경로 같은지 확인 해줘야한다!)

import javax.inject.Inject;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
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 MyBatisTest 
{
    @Inject
    private SqlSessionFactory sqlFactory;
    
    @Test
    public void testFactory(){
        System.out.println("\n >>>>>>>>>> sqlFactory 출력 : "+sqlFactory);
    }
    
    @Test
    public void testSession() throws Exception{
        
        try(SqlSession session = sqlFactory.openSession()){
            
            System.out.println(" >>>>>>>>>> session 출력 : "+session+"\n");
            
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
}

 

 

 

 

작성이 완료되면 JUnit을 통해 테스트를 진행한다

MySQLConnectionTest.java -> Run As -> JUnit Test

 

 

 

Console창에 아래와 같은 Connection이 출력된다면 MySQL 연동 성공!

 

 

 

이어서 MyBatis도 진행해보자.

MyBatisTest.java -> Run As -> JUnit Test

 

 

 

sqlFactorysession이 출력된다면 MyBatis도 연동 성공!

 

728x90