Programming/JDBC

[JDBC] JDBC란? (Java Database Connectivity)

Isaac-Christian 2023. 10. 19. 15:47

🍁JDBC


JDBC는 자바 프로그램과 데이터베이스(오라클)를 연결시켜 주는 자바 API(응용 프로그래밍 인터페이스)이다.

JDBC는 데이터베이스에서 자료를 쿼리를 만들거나 업데이트하는 방법을 제공한다.

 

퍼시스턴스 계층

  • JDBC
  • Spring JDBC
  • MyBatis
  • JPA

JDBC를 중간 계층이라고 하며, 정확하게는 퍼시스턴스persistence 계층(영구 계층)이라고 한다.

퍼시스턴트 계층은 JDBC에만 있는 게 아니라, Spring, MyBatis 등에도 있다.

 

JDBC 환경 설정

  • *.jar 설치

데이터베이스 제조사에서 배포하므로, 오라클을 사용한다면 오라클 홈페이지를 찾아가면 된다.

이번에는 다른 방법으로 Oracle 폴더 경로에 있는 jar 파일을 가져와 보려고 한다.

 

ojdbc6.jar 파일을 lib 폴더로 이동

  • C:\oraclexe\app\oracle\product\11.2.0\server\jdbc\lib

먼저 JDBC 자바 프로젝트를 새로 생성한다. 그리고 위 Oracle 폴더 경로에서 ojdbc6.jar파일을 찾아 복사한다.

그리고 JDBC 프로젝트 lib 폴더를 만들어서 해당 폴더에 jar 파일을 붙여 넣기 한다.

 

ADD JARs

  • 프로젝트 오른쪽 클릭 > Build Path > Configure Build Path

Configure Build Path에서 Libraries에 들어간다.

Classpath에서 ADD JARs 버튼을 클릭하고, ojdbc6.jar를 추가하면 설정이 완료된다.

 

사람과 SQL Developer의 오라클 서버 대화 과정

  • 사람 + SQL Developer <- (SQL) -> Oracle Server

사람이 SQL Developer 프로그램으로 SQL을 이용해 Oracle Server와 대화하는 과정이다.

 

1. 클라이언트 프로그램 실행

 

2. DB 접속

2.1 호스트명: 서버 IP or 도메인 주소 (localhost)

2.2 포트번호: 1521

2.3 SID: xe

2.4 드라이버: thin

2.5 사용자: hr

2.6 암호: java1234

 

3. 질의

3.1 SQL 사용 (대화)

3.2 반환값이 없는 쿼리

- select를 제외한 모든 쿼리

3.3 반환값이 있는 쿼리

- select

- 결과셋을 반환하는 쿼리

- 결과셋의 업무에 사용

 

4. 접속 종료

4.1 commit/rollback

4.2 접속 종료

 

🍂자바 프로그램과 JDBC의 오라클 서버 대화 과정

  • 자바 프로그램 + JDBC <- (SQL) -> Oracle Server

이번에는 사람 대신에 프로그램을, SQL Developer 대신에 JDBC를 이용해 Oracle Server와 대화를 한다.

 

JDBC 라이브러리 클래스

  • Connection
  • Statement
  • ResultSet

 

1. 자바 프로그램 실행 (JDBC 실행)

 

2. DB 서버 접속

- JDBC의 Connection 클래스를 사용하여 프로그램으로 접속한다.

2.1 호스트명: 서버 IP or 도메인 주소 (localhost)

2.2 포트번호: 1521

2.3 SID: xe

2.4 드라이버: thin

2.5 사용자: hr

2.6 암호: java1234

 

3. 질의

- JDBC의 Statement 클래스를 사용하여 SQL을 실행한다.

3.1 SQL 사용 (대화)

3.2 반환값이 없는 쿼리

- select를 제외한 모든 쿼리

3.3 반환값이 있는 쿼리

- select

- 결과셋을 반환하는 쿼리

- 결과셋의 업무에 사용

- JDBC의 ResultSet 클래스로 결과셋을 가져온다. (ResultSet을 탐색하여 결과셋을 소비한다.)

 

4. 접속 종료

- JDBC의 Connection 클래스를 사용하여 접속을 끊는다.

4.1 commit/rollback

4.2 접속 종료