본문 바로가기

프로그래밍 공부&정리/Java

이클립스(Eclips) 데이터베이스(Database) 연결 테스트 성공하기

이클립스에서 데이터베이스 연결 테스트 성공하기






1. Spring MVC Project를 만든다.


[file] - [new] - [Spring Legacy Project]을 클릭

Project name 정하고 아래의 Templates에서 [Persistence] - [Spring MVC Project]을 선택 후 [next] 클릭

topLevelPackage 를 정하고 [Finish] 클릭


2. Spring 버전 변경


pom.xml 파일에서 <properties>에서 <org.springframework-version>부분을 4.1.0.RELEASE로 변경.


3. 데이터베이스 연결에 필요한 의존성 라이브러리 추가

(나는 MySQL을 이용)


<dependencies>의 바로 아래에 아래 내용을 추가


<!-- MySQL 사용을 위한 라이브러리 -->

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

<version>6.0.6</version>

</dependency>


<!-- 스프링에서 데이터베이스 사용을 위한 라이브러리 -->

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-jdbc</artifactId>

<version>${org.springframework-version}</version>

</dependency>


<!-- mybatis 사용을 위한 라이브러리 -->

<dependency>

<groupId>org.mybatis</groupId>

<artifactId>mybatis</artifactId>

<version>3.4.6</version>

</dependency>


<!-- mybatis-spring 사용을 위한 라이브러리 -->

<dependency>

<groupId>org.mybatis</groupId>

<artifactId>mybatis-spring</artifactId>

<version>1.3.2</version>

</dependency>


<!-- SpringTest 사용을 위한 라이브러리 -->

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-test</artifactId>

<version>${org.springframework-version}</version>

</dependency>


4. web.xml에 아래 설정을 추가


<!-- 파라미터 인코딩 설정. 이 설정이 없으면 클라이언트가 입력한 한글이나 특수문자가 깨지게 됩니다. -->

<filter>

<filter-name>encoding</filter-name>

<filter-class>

org.springframework.web.filter.CharacterEncodingFilter

</filter-class>

<init-param>

<param-name>encoding</param-name>

<param-value>UTF-8</param-value>

</init-param>

</filter>


<filter-mapping>

<filter-name>encoding</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>


5. WEB-INF/spring/appServlet/servlet-context.xml에 아래 코드를 추가
(추가하지 않으면 Javascrip 나 image 파일 등을 출력할 때 404에러가 발생합니다)

<!-- Controller가 처리하지 못하는 요청은 WAS가 대신 처리하라는 설정 -->
<default-servlet-handler/>

6. 데이터베이스 연결 설정 및 테스트

(Spring에서는 데이터베이스 연결 시 반드시 DataSource를 사용하도록 하고 있습니다.)


1) 모든 곳에서 사용할 수 있도록 root-context.xml 파일에 아래 코드를 추가

(취업시에는 Oracle Database를 쓰는 것이 조금 더 유리하다고 합니다)


</bean> 바로 위에 추가

(노랑색 부분은 변경이 필요(할 수도)한 부분입니다.)


<!-- 데이터베이스 접속 정보 -->

<bean

class="org.springframework.jdbc.datasource.DriverManagerDataSource"

id="dataSource">


<!-- 데이터베이스 종류 : MySQL -->

<property value="com.mysql.jdbc.Driver"

name="driverClassName" />


<!-- 데이터베이스 주소 -->

<property

value="jdbc:mysql://localhost(또는 호스트 주소 작성):3306/데이터베이스 이름 작성?characterEncoding=UTF-8&amp;serverTimezone=UTC&amp;"

name="url" />


<!-- 아이디와 비밀번호 -->

<property value="id 작성" name="username" />

<property value="비밀번호 작성" name="password" />

</bean>


2) src/test/java 디렉토리의 패키지에 테스트를 할 클래스를 추가하고 아래와 같이 작성합니다.


(1) 클래스 추가

[패키지 우클릭] - [new] - [Class] 클릭

적당한 클래스 이름을 정하고 Main 메소드를 만들지 않고 [Finsh] 클릭


(2) 아래 코드를 추가

(노랑색 부분만 추가하면 됩니다.)

(import 오류가 난다면 다시 import하면 됩니다. 오류가 사라질 때까지 작업합니다.)


package 패키지

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/**/*.xml"})

public class 클래스이름 {


     @Inject

     private DataSource ds;

     @Test

     public void testConection()throws Exception{

         Connection con = null;

         try {

             con = ds.getConnection();

             System.out.println(con);


         } catch (Exception e) {

             e.printStackTrace();

         } finally {

             if (con != null) {

                 con.close();

             }

         }    

     }

     

}


3) @Test 아래에서 JUnit Test로 실행하여 정상 작동 하는지 확인


@Test 오른쪽이나 아래에서 우클릭 - [Run As] - [2 JUnit Test] 클릭


com.mysql.cj.jdbc.ConnectionImpl@18151a14

콘솔창에 이런 해시코드가 뜨면 정상 작동 하는 것입니다.

오라클은

oracle.jdbc.driver.T4CConection@2f19f2aa

와 같이 뜹니다.

해시코드는 때마다 다를 수 있습니다.








'프로그래밍 공부&정리 > Java' 카테고리의 다른 글

자바(Java)의 생성자(Constructor)  (0) 2019.03.31
의존성 라이브러리 모음  (0) 2019.02.12
Spring 개요  (0) 2018.10.19