간단 지식/web

05. Intelij에서 Spring framework 사용하기 - OracleDB

납작한돌맹이 2021. 4. 1. 01:54
반응형

대부분 실무라고 하기보다는 대략 40%의 회사가 데이터베이스로 오라클을 사용한다고 한다. 물론 내가 직접 확인한 수치가 아니라, 예전에 해커톤에서 본 멘토 분께서 그렇게 말씀하셨다. 하여튼 mysql도 써보긴 했는데 phpmyadmin때문에 화나서 무작정 오라클로 이동했다. 솔직히 말하면 딱 공부용으로 DB 설계하고 구현하고 작은 프로젝트에 쓸거면 Mysql을 쓰는게 낫고, 어플을 만든다던지 큰 규모의 프로젝트라면 오라클을 쓰는게 나은 것 같다.

 

하여튼 이번에도 내 나름대로의 방법으로 spring framework에 오라클DB를 연동해보도록 하겠다.

 

1. Mybatis library추가하기.

좀 더 편하게 sql을 사용하기 위해 mybatis라이브러리를 추가해줬다. mybatis가 무엇인지, 장점이 무엇인지 알고 싶다면 아래 포스트에 들어가서 읽어보자.

2021.04.01 - [3학년/web] - 6. Mybatis란?

 

6. Mybatis란?

spring mvc에 오라클DB를 연동하는 방법을 찾던 중에 Mybatis란 아이를 알게 되었다. 안그래도 복잡한데 이건 또 뭔가하여 찾아보았다. Mybatis는 java persistence framework의 하나로, XML이나 annotation을 사..

20plus3.tistory.com

   	 <!--mybatis-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.5</version>
        </dependency>
        <!--mybatis spring-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.3.1</version>
        </dependency>

 

2. connection pool library 추가하기

connection pool이란, web application의 필수 요소로 db와 application을 효율적으로 연결해준다. 그 중에 우리가 쓸  Apache의 Commons DBCP는 오픈소스이다. 이를 잘 사용하면 db와 application의 일부분에서 발생하는 문제가 전체로 전파되지 않게 할 수 있고, 일시적인 문제가 긴 시간 이어지지 않게 할 수 있다. web application의 요청은 대부분 DBMS로 연결되기 때문에 커넥션 풀 라이브러리의 설정은 전체 application의 성능과 안정성에 영향을 미친다.

 	<dependency>
            <groupId>commons-dbcp</groupId>
            <artifactId>commons-dbcp</artifactId>
            <version>1.4</version>
        </dependency>

3. jdbc library 추가하기

추가해야하는 jdbc는 두개이다. 하나는 spring jdbc, 하나는 ojdbc이다. ojdbc 추가에서 엄청 애를 먹었는데 그 이유는 maven에서 ojdbc 라이브러리를 지원하지 않기 때문이다. 따라서 repository에 추가할 ojdbc의 경로를 설정해줘야하는데, 다른 블로그들에서 알려주는 링크를 타고 가면 항상 없다. 이렇게 자주 바뀌는 경로를 사용하는 건 좋지 않기 때문에 나는 그냥 원래 local에 가지고 있던 ojdbc를 추가해주었다.

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>

 	<dependency>
            <groupId>oracle.jdbc</groupId>
            <artifactId>OracleDriver</artifactId>
            <version>12.2.0.1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/lib/ojdbc8.jar</systemPath>
        </dependency>

참고로 spring jdbc는 property에 아래 코드를 추가해줘야 에러가 안난다.

        <java-version>1.8</java-version>
 	<org.springframework-version>5.0.3.RELEASE</org.springframework-version>
        <org.aspectj-version>1.8.10</org.aspectj-version>
        <org.slf4j-version>1.7.25</org.slf4j-version>

 

++++++++

각각의 버전을 되는대로 막 갖다가 쓰면 안된다. 다 호환이 되는 애들이 있으니 만일 에러 중에 java.lang.NoSuchMethodError가 발생하면 버전이 서로 호환이 안된다는 의미이므로  다시한번 확인하자.

 

 

(이 글이 도움이 됐다면 광고 한번씩만 클릭 해주시면 감사드립니다, 더 좋은 정보글 작성하도록 노력하겠습니다 :) )

반응형