Java에서 Oracle 데이터베이스에 JDBC로 연결할 때, Service Name 또는 SID를 사용하는 두 가지 방식이 있습니다.


어떤 환경에서는 SID를, 또 어떤 경우에는 Service Name을 사용해야 하기도 하죠.

이 글에서는 Java Oracle JDBC 연결 시 Service Name과 SID를 사용하는 방법을 실제 코드 예제와 함께 비교해 드립니다.

DB 설정에 따라 어떤 URL을 써야 하는지 혼동될 때, 이 글이 정확한 가이드가 되어줄 것입니다.


🔸 Java에서 Oracle JDBC 연결 방식 개요

Oracle DB에 연결할 때 사용하는 식별자는 보통 두 가지입니다.

구분설명사용환경
SIDDB 인스턴스 식별자구형 Oracle (11g 등)
Service Name논리적인 서비스 이름최신 Oracle (12c 이상)

Java에서는 두 방식 모두 지원하며, JDBC URL 형식이 다릅니다.


✅ 1. Service Name으로 연결하기

Oracle 12c 이상에서는 일반적으로 Service Name 기반 연결을 사용합니다.

🔹 JDBC URL 형식

jdbc:oracle:thin:@//<호스트명>:<포트>/<서비스명>


🔹 예제 코드

String url = "jdbc:oracle:thin:@//db.example.com:1521/myservice";
String user = "your_user";
String password = "your_password";

Connection conn = DriverManager.getConnection(url, user, password);


✅ 2. SID로 연결하기

구형 Oracle에서는 SID 기반 연결이 일반적입니다.

🔹 JDBC URL 형식

jdbc:oracle:thin:@<호스트명>:<포트>:<SID>


🔹 예제 코드

String url = "jdbc:oracle:thin:@db.example.com:1521:ORCL";
String user = "your_user";
String password = "your_password";

Connection conn = DriverManager.getConnection(url, user, password);


: 뒤의 ORCL은 DB 인스턴스의 SID입니다.


✅ 3. 차이점 요약

항목Service Name 방식SID 방식
URL 형식@//host:port/service_name@host:port:sid
용도논리적 DB 서비스 구분DB 인스턴스 직접 지정
권장 환경Oracle 12c 이상, RAC 환경Oracle 11g 이하, 단일 인스턴스 환경
검색어 예시java oracle jdbc service name 연결java oracle jdbc sid 연결



✅ 4. 연결 시 주의사항

  • JDBC 드라이버는 Oracle thin 드라이버(ojdbc8.jar 등)를 사용
  • 오타 주의: Service Name과 SID는 다릅니다!
  • 정확한 값은 DBA에게 요청하거나 tnsnames.ora 파일에서 확인 가능

✅ 결론

Java에서 Oracle DB에 연결할 때 Service Name과 SID는 서로 다른 목적의 설정값입니다. 어떤 방식이 내 환경에 적합한지 파악한 뒤, 올바른 JDBC URL을 사용하는 것이 중요합니다. 위 코드 예제를 참고하여 빠르게 연결을 구성해 보세요.