문홍의 공부장

[IntelliJ] IntelliJ Community 에서 Spring MVC 환경 구축 (2) - Oracle DB 연결하기 본문

개발/tools

[IntelliJ] IntelliJ Community 에서 Spring MVC 환경 구축 (2) - Oracle DB 연결하기

moonong 2020. 3. 15. 20:34
반응형

기본적인 스프링 세팅이 끝났다. 이제 DB를 연결할 차례다. 

1. pom.xml 설정

데이터베이스를 사용할 수 있도록 jdbc 의 의존성을 추가한다. DB는 oracle을 사용하였으며, mybatis를 이용할 예정이기 때문에 이 역시 디펜던시를 추가해주었다. 

<!-- JDBC (jdbc, dbConnectionPool, Transaction)-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.2.0.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-dbcp2</artifactId>
            <version>2.7.0</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>5.2.0.RELEASE</version>
        </dependency>

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

        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.2</version>
        </dependency>

        <!-- oracle -->
        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc7</artifactId>
            <version>12.1.0.2</version>
        </dependency>
        
<repositories>
	<repository>
    	<id>oracle</id>
        <url>http://maven.jahia.org/maven2</url>
    </repository>
</repositories>

 

2. spring-context.xml 설정 

데이터베이스 설정용 context 파일을 따로 딸까 하다가 그냥 기본 spring-context.xml 에 내용을 추가하였다. 자바 파일로 configuration 파일을 만드는 것에 익숙해져 있어서, 이번엔 간만에 xml 파일로 설정해보았다. 

아래 내용의 username, password는 개인의 사용자 계정/비밀번호를 입력하면 된다. 

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
        <property name="url" value="jdbc:oracle:thin:@localhost:1521:xe"/>
        <property name="username" value="${username}"/>
        <property name="password" value="${password}"/>
    </bean>
    <bean id="SqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/> 
        <property name="mapperLocations" value="classpath:mappers/**/*Mapper.xml"/>
    </bean>
    <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate" destroy-method="clearCache">
        <constructor-arg name="sqlSessionFactory" ref="SqlSessionFactory"/>
    </bean>

 

3. pom.xml 설정 - JUnit 테스트 

데이터베이스가 제대로 연결 되었는지 확인하여야 한다. Controller에서 Service, DAO, Mapper, View 까지 모두 생성하고 테스트 하기엔 너무 번거롭기 때문에, 우선적으로 JUnit 을 이용해 간단하게 단위 테스트를 진행할 예정이다. 

이를 위해 pom.xml 에 JUnit 테스트를 위한 디펜던시를 추가해준다. 

	<!-- Test -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>

        <!--spring-test-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>5.2.3.RELEASE</version>
        </dependency>

 

4. 테스트 코드 작성 

JUnit 테스트를 위한 코드를 작성하기 위해 테스트 클래스를 생성하여야 한다. JUnit 코드는 /src/test/java 라는 디렉토리에 코드를 작성하여야 한다. 아래와 같이 간단하게 패키지를 만들어, 테스트 클래스와 코드를 작성하였다. 

 

아래와 같이 테스트 코드를 작성한다. 

  • Runwith 어노테이션은 이 클래스를 테스트 클래스로 사용하겠다는 설정
  • WebAppconfiguration은 프로젝트의 web.xml이 아닌 가상의 web.xml을 사용하겠다는 의미이다.
  • ContextConfiguration은 어플리케이션 설정과, 디스패처 서블릿의 xml설정을 디렉토리에서 가져오겠다는 어노테이션이다. 
@WebAppConfiguration
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"file:src/main/webapp/WEB-INF/*-context.xml"})
public class MainTest {
    @Autowired
    private DataSource ds;

    @Test
    public void testConnection() {
        try (Connection con = ds.getConnection()) {
            System.out.println(("DB 연결 성공 : " + con));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

 

코드 입력 후 Ctrl + Shite + F10 단축키, 혹은 우클릭 - Run testConnection(); 을 선택하여 실행한다.

DB 연결 성공 메세지가 찍히면 성공이다. 

 

반응형