1.Spring Legacy Project -Spring MVC Project 를 이용해서 프로젝트 생성 (패키지명 : com.kimjaeeun.controller)
pom.xml
2.pom.xml springframework 버전 5.0.7 버전으로 바꾸기
3.java-version 1.8 , 3.5.1 로 바꾸기 (maven-compiler-plugin)
4.maven - updateproject 하기
5.프로젝트 실행해보기 hello world!
6.lombok.jar 설치
7.maven추가
spring-test(${org.springframework-version}) , lombok(1.18.12) 추가
log4j(1.2.17) junit(4.12)버전 변경
root-context.xml
8.namespace context체크하고 source탭에서 <context:component-scan base-package="com.kimjaeeun.sample"></context:component-scan> 추가하기
9. oracle 설치하고 ojdbc.jar파일을 프로젝트에 추가시키기(java Build Path, Deployment Assembly)
10.JDBC테스트 코드 작성
package com.kimjaeeun.persistence;
import static org.junit.Assert.fail;
import java.sql.Connection;
import java.sql.DriverManager;
import org.junit.Test;
import lombok.extern.log4j.Log4j;
@Log4j
public class JDBCTests {
static {
try {
//forName() : 물리적인 클래스 파일명을 인자로 넣어주면 이에 해당하는 클래스를 반환
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
@Test
public void testConnectioin() {
try(Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "BOOK_EX", "BOOK_EX")) {
log.info(conn);
}
catch(Exception e) {
fail(e.getMessage());
}
}
}
11.pom.xml에 HikariCP maven 추가
12.root-context.xml에 입력
<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
<property name="jdbcUrl" value="jdbc:oracle:thin:@localhost:1521:XE"/>
<property name="username" value="BOOK_EX" />
<property name="password" value="BOOK_EX" />
</bean>
<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
<constructor-arg ref="hikariConfig"/>
</bean>
13.datasource 테스트 코드 실행
package com.kimjaeeun.persistence;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.fail;
import java.sql.Connection;
import java.sql.SQLException;
import javax.sql.DataSource;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import lombok.Setter;
import lombok.extern.log4j.Log4j;
//빈 테스트하는 파일
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("file:src/main/webapp/WEB-INF/spring/root-context.xml")
@Log4j
public class DataSourceTests {
@Autowired @Setter
private DataSource dataSource;
@Test
public void testExist() {
assertNotNull(dataSource);
log.info(dataSource);
}
//스프링에 빈으로 등록된 DateSource를 이용해서 Connection을 제대로 처리할 수 있는지 확인
@Test
public void testConnection() {
try(Connection conn = dataSource.getConnection()) {
log.info(conn);
}catch (SQLException e) {
fail(e.getMessage());
}
}
}
MyBatis연동하기
1.pom.xml에 maven 4개 추가
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${org.springframework-version}</version>
</dependency>
2.root-context에 추가
<bean class="org.mybatis.spring.SqlSessionFactoryBean" id="sqlSessionFactory">
<property name="dataSource" ref="dataSource"/>
<property name="typeAliasesPackage" value="com.kimjaeeun.domain"></property>
</bean>
3. root-context에 추가
</mybatis-spring:scan base-package="com.kimjaeeun.mapper">
4.sql 로그 잘보기 위해 pom.xml에 추가
<!-- https://mvnrepository.com/artifact/org.bgee.log4jdbc-log4j2/log4jdbc-log4j2-jdbc4 -->
<dependency>
<groupId>org.bgee.log4jdbc-log4j2</groupId>
<artifactId>log4jdbc-log4j2-jdbc4</artifactId>
<version>1.16</version>
</dependency>
5.log4jdbc.log4j2.properties파일 java/resource밑에 추가
6.root-context.xml
<property name="driverClassName" value="net.sf.log4jdbc.sql.jdbcapi.DriverSpy"/> 변경
<property name="jdbcUrl" value="jdbc:log4jdbc:oracle:thin:@localhost:1521:XE"/> 변경
'프로그래밍' 카테고리의 다른 글
[Java] ListOrderedMap, egovMap (0) | 2022.01.12 |
---|---|
[DB]Table과 Schema의 차이점 (0) | 2022.01.12 |
신입개발자 기술면접 질문 최종정리(Java) (0) | 2021.12.30 |
[node.js]DB테이블 구축 및 Express와 연동하기 (0) | 2021.12.23 |
[React,node.js]React LifeCycle 및 API 로딩 처리 구현하기 (0) | 2021.12.22 |