테스트 클래스를 생성하여 오라클 db 연동 여부 확인(STS4 - Oracle - mybatis 연동 설정 포함)

박재민·2021년 4월 8일
0

(1) Spring 설정

1) pom.xml

   <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>${org.springframework-version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-tx</artifactId>
    <version>${org.springframework-version}</version>
</dependency>
<dependency>
    <groupId>com.zaxxer</groupId>
    <artifactId>HikariCP</artifactId>
    <version>2.7.8</version>
</dependency>

2) root-context.xml

    <bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
	<property name="driverClassName"
		value="net.sf.log4jdbc.sql.jdbcapi.DriverSpy"></property>
	<property name="jdbcUrl"
		value="jdbc:log4jdbc:oracle:thin:@localhost:1521:JAVA"></property>
	<property name="username" value="scott"></property>
	<property name="password" value="tiger"></property>
</bean>
<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource"
	destroy-method="close">
	<constructor-arg ref="hikariConfig" />
</bean>

3) pom.xml

    <dependency>
   <groupId>com.oracle.database.jdbc</groupId>
   <artifactId>ojdbc6</artifactId>
   <version>11.2.0.4</version>
</dependency>

4) DataSourceTests.java

5) pom.xml

   <dependency>
    <groupId>org.bgee.log4jdbc-log4j2</groupId>
    <artifactId>log4jdbc-log4j2-jdbc4</artifactId>
    <version>1.16</version>
</dependency>

6) log4jdbc.log4j2.properties

7) 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>
	<servlet-name>appServlet</servlet-name>
</filter-mapping>

(2) mybatis 설정

1) pom.xml

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

2) root-context.xml

<bean id="sqlSessionFactory"
	class="org.mybatis.spring.SqlSessionFactoryBean">
	<property name="dataSource" ref="dataSource"></property>
	<property name="configLocation"
		 value="classpath:/mybatis-config.xml"/>
</bean>

3) mybatis-config.xml

 <configuration>
   <typeAliases>
	   <typeAlias alias="Address" type="soo.md.domain.Address"/>
   </typeAliases>
   <mappers>
	   <mapper resource="soo/md/mapper/AddressMapper.xml"/>
   </mappers>
 </configuration>

4) AddressMapper.xml ( 참조: https://mybatis.org/mybatis-3/ko/sqlmap-xml.html )

5) AddressMapper.java

6) 컴포넌트 스켄
<context:component-scan base-package="soo.md.mapper"/>
<mybatis-spring:scan base-package="soo.md.mapper"/>

7) AddressMapperTests.java

(3) DBMS별 dataSource 설정

1) Oracle

1)-1 root-context.xml

<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
	<property name="driverClassName"
		value="net.sf.log4jdbc.sql.jdbcapi.DriverSpy"></property>
	<property name="jdbcUrl"
		value="jdbc:log4jdbc:oracle:thin:@localhost:1521:JAVA"></property>
	<property name="username" value="scott"></property>
	<property name="password" value="tiger"></property>
</bean>

<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource"
	destroy-method="close">
	<constructor-arg ref="hikariConfig" />
</bean>

1)-2 pom.xml

<dependency>
	<groupId>com.oracle.database.jdbc</groupId>
	<artifactId>ojdbc6</artifactId>
	<version>11.2.0.4</version>
</dependency>

미리 만든 mapper클래스와 domain을 통해 오라클db와 연결이 되는지 테스트 클래스를 작성

[테스트 클래스 작성]

1) @RunWith
-현재 테스트 코드가 스프링을 실행하는 역할을 할 것이라는 것을 의미

2) @ContextConfiguration
-단위 테스트에서 가장 중요한 어노테이션으로 속성 값이 중요

-지정된 클래스나 문자열을 통해 필요한 객체들을 스프링 내에 객체로 등록 ---> 스프링의 빈(Bean)으로 등록된다고 표현

  • XML의 경우 'classpath :' 또는 'file :'을 이용할 수 있으므로 툴에서 자동 생성된 root-context.xml의 경로를 지정

-JAVA의 경우 'classes'를 이용해 root-context.xml의 역할을 대신하는 RootCofig 경로를 지정
---> 

@ContextConfiguration(classes={RootConfig.class})

[XML]

3) @Test

  • JUnit에서 테스트 대상을 표시하는 어노테이션,  헤당 메서드를 선택하고 Junit Test 기능을 실행

  • 테스트 실행 결과 (테스트는 오라클 연동 확인을 위해 insert로 실행)

console창에 데이터가 저장됐음 보여주고 테스트 코드도 문제 없이 실행

오라클 db에 저장이 되었다

profile
동료를 소중히 생각하는 개발자입니다.

0개의 댓글

관련 채용 정보