JDBC(Java Database Connectivity)
JDBC(Java Database Connectivity)는 Java 애플리케이션에서 데이터베이스에 접근할 수 있게 해주는 Java API이다. 이를 통해 개발자는 다양한 관계형 데이터베이스에 연결하고 SQL 쿼리를 실행할 수 있다.
1. 주요 특징
- 표준화된 인터페이스 : JDBC는 자바 플랫폼의 표준 부분으로, 일관된 API를 제공한다. 이를 통해 개발자는 특정 데이터 베이스에 종속되지 않는 코드를 작성 할 수 있다.
- 데이터베이스 독립성 : JDBC는 다양한 데이터베이스와 호환된다. 개발자는 데이터베이스 종류에 관계없이 동일한 코드를 사용할 수 있다.
2. JDBC 구조
JDBC는 크게 JDBC API와 JDBC Driver로 구성된다.
2.1 JDBC API
JDBC API는 자바 애플리케이션에서 데이터베이스 작업을 수행하기 위한 인터페이스를 제공한다. 주요 구성요소는 다음과 같다.
- DriverManager
- Connection
- Statement
- ResultSet
2.2 JDBC Driver
JDBC Driver는 JDBC API의 구현체로, 특정 데이터베이스와의 통신을 담당한다. 주요 JDBC Driver 유형은 다음과 같다.
- MySQL : com.mysql.jdbc*
- Oracle : oracle.jdbc*
- MS-SQL : con.microsoft.sqlserver.jdbc*
3. JDBC 동작 과정
3.1 연결 과정 (Connection)
DriverManager.getConnection()
메서드 호출- 적절한 JDBC Driver 선택
- 선택된 Driver를 통해 데이터베이스에 연결
- Connection 객체 반환
3.2 데이터 조작 과정 (DML: insert/update/delete)
- Connection 객체에서
createStatement()
메서드 호출 - Statement 객체 생성
executeUpdate()
메서드를 통해 SQL 실행- 데이터베이스에서 결과 반환
3.3 데이터 조회 과정 (select)
- Connection 객체에서
createStatement()
메서드 호출 - Statement 객체 생성
executeQuery()
메서드를 통해 SQL 실행- ResultSet 객체 반환
next()
,getXXX()
메서드를 통해 데이터 접근
4. JDBC 주요 인터페이스
4.1 Driver 인터페이스
- JDBC Driver의 기본 인터페이스
- 데이터베이스와의 연결을 담당
4.2 Connection 인터페이스
- 데이터베이스와의 세션을 나타냄
- Statement 객체 생성, 트랜잭션 관리 등을 담당
4.3 Statement 인터페이스
- SQL 문을 실행하고 결과를 반환하는 역할
- PreparedStatement, CallableStatement 등의 하위 인터페이스 존재
4.4 ResultSet 인터페이스
- SELECT문 실행하여 SQL 쿼리의 결과를 나타냄(서버에서 결과를 가져오는 객체일뿐 결과가 아니다!)
- 결과 집합을 순회하고 데이터에 접근하는 메서드 제공
5. JDBC 사용 예시
// 1. 데이터베이스 연결
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/database", "username", "password");
// 2. Statement 생성
Statement stmt = con.createStatement();
// 3. SQL 실행
ResultSet rs = stmt.executeQuery("SELECT * FROM users");
// 4. 결과 처리
while (rs.next()) {
String name = rs.getString("name");
int age = rs.getInt("age");
System.out.println(name + " : " + age);
}
// 5. 자원 해제
rs.close();
stmt.close();
con.close();
6. JDBC의 장점
- 데이터베이스 독립성: 다양한 데이터베이스에 일관된 방식으로 접근 가능
- 간편한 데이터베이스 전환: Driver만 교체하면 다른 DBMS로 전환 가능
- 표준화된 API: Java SE의 일부로 표준화되어 있어 안정적이고 지속적인 지원
7. 주의사항
- 연결 관리: 데이터베이스 연결은 비용이 많이 드는 작업이므로, 커넥션 풀 사용 고려
- 보안: SQL Injection 등의 보안 위협에 대비하여 PreparedStatement 사용 권장
- 예외 처리: SQLException 등 JDBC 관련 예외를 적절히 처리해야 함
JDBC는 자바 기반 애플리케이션에서 데이터베이스 작업을 수행하기 위한 필수적인 기술이다. 적절한 사용을 통해 효율적이고 안전한 데이터베이스 접근이 가능하다.
Leave a comment