이클립스에서 데이터베이스 연결 테스트 성공하기
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>
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&serverTimezone=UTC&"
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 |