Spring + Oracle(OJDBC) 연결 방법 정리
최근 eclipse + spring 환경에서 작업을 많이 하게 되면서 spring 프로젝트에서 ojdbc를 통해 oracle 데이터베이스에 연결하는 방법을 정리해 보았습니다.
앞서 JDBC와 OJDBC에 대해 간략하게
먼저 'JDBC'는 Java Database Connectivity의 약자로 자바 언어를 이용하여 데이터베이스에 접속하고 SQL 쿼리를 실행할 수 있게 해주는 자바 API입니다.
JDBC는 데이터베이스와의 통신을 위한 표준화된 방법을 제공하기 때문에 DBMS(MySQL, Oracle, MSSQL 등)의 종류에 관계없이 JDBC 인터페이스를 이용하여 데이터베이스 작업을 처리할 수 있습니다.
그리고 각 데이터베이스 벤더는 아래와 같이 자체의 JDBC Driver를 제공하는데요.
Oracle의 경우 'ojdbc*.jar', MySQL의 경우 'mysql-connector-java-*.*.*.jar', MS SQL Server의 경우 'mssql-jdbc-*.*.*.jre*.jar' 형식의 파일을 제공합니다.
즉, 'OJDBC'는 Oracle 데이터베이스와 연결 및 상호 작용을 하기 위한 JDBC Driver를 말합니다.
Oracle Database 버전에 따른 ojdbc 버전
(출처 - https://www.oracle.com/database/technologies/faq-jdbc.html)
spring + oracle 연결 방법에 대해 살펴보기 전에 중요한 점은 '사용하는 오라클 데이터베이스 버전에 따라 필요한 ojdbc의 버전이 다르다는 것'인데요.
위 이미지는 오라클 공식 홈페이지의 내용으로, 사용하시는 Oracle 버전에 적합한 ojdbc를 연동하여야 하며, 아래 예시에서는 oracle 11.2 버전을 기준으로 ojdbc6.jar를 적용하여 연동합니다.
1. Maven을 통한 라이브러리 추가 방법
<!-- https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc6 -->
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.4</version>
</dependency>
첫 번째 연결 방법은 Maven을 통해 ojdbc 라이브러리를 추가하여 연동하는 방법입니다.
위 'ojdbc6 11.2.0.4' 버전의 경우 maven 중앙 저장소에서 해당 버전을 지원하기 때문에 다음과 같이 의존성만 추가해 주면 됩니다.
하지만 다음의 '11.2.0.3' 버전과 같이 특정 버전의 경우 maven 중앙 저장소에서 해당 버전을 지원하지 않을 수 있는데요.
이런 경우에는 의존성 정보만 입력하였을 때 해당 라이브러리를 다운로드하지 못하고 오류가 발생하게 됩니다.
이 경우 해당 artifact가 어디에 위치해 있는지 'Note' 부분을 참고하여 해당 repository 주소를 다음과 같이 추가로 명시해 주는 방법을 사용해야 합니다.
2. Build Path를 통해 직접 라이브러리를 추가하는 방법
두 번째 방법은 프로젝트의 'Java Build Path'를 통해 ojdbc*.jar 파일을 직접 추가하는 것이며, 해당 방식의 경우 적용할 ojdbc*.jar 파일이 준비되어 있어야 합니다.
'프로젝트 우클릭' -> 'Build Path' -> 'Configure Build Path...'
이어서 Libraries 탭에서 Classpath에 대해 Add External JARs 부분을 통해 준비된 ojdbc*.jar가 있는 경로를 찾아 해당 파일을 추가하고 Apply 해줍니다.
'Libraries' -> 'Classpath' -> 'Add External JARs...'
Deployment Assembly 부분은 이후 해당 프로젝트를 war로 빌드 시 ojdbc*.jar 파일이 함께 포함될 수 있도록 하는 작업입니다.
'Deployment Assembly' -> 'Add...'
Java Build Path Entries를 통해 앞서 Build Path에서 추가한 ojdbc*.jar 파일을 참고할 수 있도록 설정하며, 이후 Apply 하여 해당 작업 내용을 적용합니다.
연결 확인 테스트 코드
import static org.junit.Assert.fail;
import java.sql.Connection;
import java.sql.DriverManager;
import org.junit.Test;
public class JDBCTest {
static {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (Exception e) {
e.printStackTrace();
}
}
@Test
public void testConnection() {
//Oracle11 버전인 경우 - "jdbc:oracle:thin:@localhost:1521:xe"
//Oracle19 버전인 경우 - "jdbc:oracle:thin:@localhost:1521:orcl"
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String user = "system";
String password = "oracle";
try (Connection con = DriverManager.getConnection(url, user, password)) {
System.out.println("connection: " + con);
} catch (Exception e) {
fail(e.getMessage());
}
}
}
(연결 확인 테스트 코드)
위 두 가지 방법 중 하나를 통해 ojdbc 라이브러리를 해당 프로젝트에 추가한 뒤 다음과 같은 테스트 코드를 실행시키면 오라클 데이터베이스에 정상적으로 연결되었는지 확인할 수 있습니다.
< 오라클 공식 홈페이지 ojdbc 다운로드 링크 >
https://www.oracle.com/database/technologies/appdev/jdbc-downloads.html
'Programming > Spring' 카테고리의 다른 글
(spring project) log4j2 로그 파일 분리하기 (1) | 2024.08.25 |
---|---|
MyBatis SQL Injection 발생하는 상황 및 방어 방법 (0) | 2024.04.10 |
mybatis selectKey 사용 방법 및 주의할 점 (selectKey 다중 컬럼) (0) | 2024.03.20 |
ObjectMapper는 Bean으로 등록해서 사용하자 (0) | 2024.03.12 |
(spring) logback, log4j2 로깅 적용 과정과 xml 파일 차이점 정리 (0) | 2024.02.27 |