개발공작소
article thumbnail
728x90

 

 

 

 

ojdbc6.jar
2.61MB

개발환경 : java SE11 / Oracle 11g

 

Spring Legacy Project와 MVC project를 통해 스프링 프로젝트를 생성하면,

pom.xml에 Mybatis나 Oracle과 같은 DB관련 dependency가 등록되어 있지 않고, datasource를 설정하는

root-context도 비어있다. 그런 경우에 Oracle을 어떻게 연동하는 지 알아보자.

(alias 같은 설정은 따로 정리 예정)

 

1. Spring Legacy Project를 통해서 스프링 프로젝트 생성

 

해당 내용은 링크에서 확인하여 생성하도록 하자.

 

2. pom.xml에 필요 dependency 추가

<!-- properties 보다 위에 넣어주도록 하자 -->
<repositories>
  <repository>
   <id>oracle</id>
   <url>http://maven.jahia.org/maven2</url>
  </repository>
</repositories>

<!-- 오라클용 추가 시작-->
    <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.5</version>
    </dependency>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis-spring</artifactId>
        <version>1.3.2</version>
    </dependency>
    <dependency>
        <groupId>commons-dbcp</groupId>
        <artifactId>commons-dbcp</artifactId>
        <version>1.4</version>
    </dependency> <!-- Oracle -->
    <dependency>
        <groupId>com.oracle.database.jdbc</groupId>
        <artifactId>ojdbc6</artifactId>
        <version>11.2.0.4</version>
    </dependency>
<!-- 오라클용 추가 끝-->

 

3. root-context.xml에 빈객체를 추가하자.

 

우선 roo-context.xml을 연 상태로 Namespaces에서 몇가지 추가해줄 게 있다.

이미지를 보고 그대로 추가해주도록 하자.

 

NameSpaces 선택

 

이미지와 같이 추가해주도록 하자.

※ 만약 이미지와 같이 안나온다면, pom.xml에서 추가한 dependency가 제대로 적용이 되지 않은 것이다.

빌드를 새로 하던가, Maven을 통해 update project를 한 후, 다시 열어 보도록 하자.

 

그 후, root-context.xml의 Source탭을 통해 보면 아래와 같이 코드가 몇줄 추가 된 것을 확인 할 수 있다.

 

몇 줄 추가된 것을 확인

 

여기까지 왔다면 이제 거의 다 왔다. 아래 코드를 입력해주도록 하자.

 

root-context.xml

-- DB정보를 가지는 datasource 빈객체 생성
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" lazy-init="false">
    <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
    <property name="url" value="jdbc:oracle:thin:@localhost:1521:xe" />
    <property name="username" value="system" />
    <property name="password" value="1234"/>
</bean>   

-- DB정보를 자기는 datasource와 쿼리문을 작성하는 Mapper.xml이 있는 경로 설정하는 mapperLocations를 
-- 포함하는 빈 객체 생성
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource"></property>
    <property name="mapperLocations" value ="/WEB-INF/classes/mapper/*.xml"/> 
</bean>

-- DB정보를 자기는 datasource와 쿼리문을 작성하는 Mapper.xml이 있는 경로 설정하는 mapperLocations를 
-- 포함하는 빈 객체를 가지는 sqlSessionTemplate 생성 <- 실제로 Mapper.java에서 주입을 통해 사용함
<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
    <constructor-arg ref="sqlSessionFactory"></constructor-arg>
</bean>

 

앞에서도 말했듯이 alias 같은 설정을 해주는 건 따로 넣지 않았다. 어차피 DB연동만 테스트 하니...

 

4. jdk에 ojdbc 라이브러리 추가.

 

아래 경로에 ojdbc 라이브러리를 추가하도록 하자.

(java 설치 경로에 따라 다를 수 있음. 그냥 lib 폴더에 넣도록 하자.)

 

ojdbc6 파일은 첨부해놓을테니, 필요한 사람은 다운로드 받도록 하자. (Oracle 버전에 따라 안될 수 도 있음)

 

그럼 이제 실제로 Controller와 Service, Mapper를 데이터를 잘가져오는 지 확인해보자.

따로, Controller와 Service는 정리 안함...

 

결과

 

이렇게 DB에서 제대로 가져오는 것을 확인 할 수 있다. 저 위에 @Autowired로 가져오는

SqlSessionTemplate가 우리가 root-context.xml에서 만든 빈 객체의 정보들을 담고 있어 DB와 연동할 수 있게 해준다.

 

아래는 Mapper.xml 코드

 

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="dao.Inquiry">
 	<select id="getList" resultType="map">
        SELECT * FROM APEX_040000.joinTable
    </select>
 </mapper>

 

항상 전자정부를 통해 Template 프로젝트로 만들어버리니, DB든 기본 설정들이 다 잘 되어 있어서

이렇게라도 정리해두지 않으면 금방 까먹어서 괜히 필요할 때 시간을 버리게 되니 정리하는 습관을 기르도록 하자.

 

 

 

 

728x90
profile

개발공작소

@모찌바라기

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!