카테고리 없음

JDBC (Java Database Connectivity) 241205

mezzanineX 2024. 12. 5. 16:38

q1: JDBC (Java Database Connectivity)

a1:

JDBC (Java Database Connectivity)란?

**JDBC(Java Database Connectivity)**는 자바(Java) 언어를 사용하여 데이터베이스와 연결하고 쿼리 실행 및 데이터를 읽고 쓰는 작업을 수행할 수 있도록 하는 표준 인터페이스입니다. JDBC는 Java 애플리케이션과 데이터베이스 간의 데이터 교환을 지원하기 위해 설계되었습니다.

JDBC의 주요 특징

1. 플랫폼 독립성
• Java 언어 기반이기 때문에 플랫폼에 상관없이 동작합니다.
• 데이터베이스에 접근하기 위한 일관된 API를 제공하여 다양한 DBMS(MySQL, Oracle, PostgreSQL 등)에서 사용 가능.
2. DBMS 독립성
• JDBC 드라이버를 통해 DBMS와 연결되므로, 특정 데이터베이스에 종속되지 않습니다.
• 데이터베이스 변경 시 JDBC 드라이버만 교체하면 됩니다.
3. 표준 API
• 데이터베이스 연결, 쿼리 실행, 결과 처리 등과 관련된 표준 메서드를 제공합니다.

JDBC의 구성 요소

1. JDBC API
• Java 애플리케이션이 데이터베이스와 상호작용하는 표준 인터페이스를 정의.
• java.sql 및 javax.sql 패키지에 포함된 클래스와 인터페이스 사용.
2. JDBC 드라이버
• Java 애플리케이션과 특정 DBMS 간 통신을 담당.
• 각 데이터베이스 벤더가 제공하며, JDBC 표준을 구현.
3. JDBC Connection
• 데이터베이스와 연결을 설정하는 객체.
• 연결 설정 후 SQL 쿼리를 실행하거나 데이터를 가져오는 작업 수행.
4. SQL 쿼리
• 데이터베이스에서 데이터를 삽입, 조회, 수정, 삭제하기 위해 실행되는 명령문.

JDBC의 작동 방식

1. 드라이버 로드
• JDBC 드라이버를 애플리케이션에 로드합니다.
• 예: Class.forName("com.mysql.cj.jdbc.Driver");
2. DB 연결 생성
• DriverManager를 사용해 데이터베이스와 연결.
• 예:

Connection connection = DriverManager.getConnection(
    "jdbc:mysql://localhost:3306/mydb", "username", "password");


3. SQL 쿼리 실행
• Statement 또는 PreparedStatement 객체를 생성하고, SQL 쿼리를 실행.
• 예:

Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM employees");


4. 결과 처리
• ResultSet을 사용해 SQL 쿼리 실행 결과를 읽음.
• 예:

while (rs.next()) {
    System.out.println(rs.getString("name"));
}


5. 리소스 닫기
• 연결(Connection), 명령문(Statement), 결과(ResultSet) 객체를 닫아 리소스를 해제.
• 예:

rs.close();
stmt.close();
connection.close();

JDBC 드라이버의 유형

JDBC 드라이버는 4가지 유형으로 나뉩니다:
1. Type 1: JDBC-ODBC Bridge
• ODBC 드라이버를 사용해 데이터베이스에 연결.
• 속도가 느리고 호환성 문제로 현재 거의 사용되지 않음.
2. Type 2: Native-API Driver
• DBMS의 네이티브 API를 호출해 연결.
• 플랫폼 의존적이며 유지보수 비용이 높음.
3. Type 3: Network Protocol Driver
• 네트워크를 통해 중간 서버가 DBMS와 연결.
• 데이터베이스와 애플리케이션 간의 분리 가능.
4. Type 4: Thin Driver
• 데이터베이스 프로토콜을 직접 구현.
• 가장 널리 사용되며, 성능이 우수하고 플랫폼 독립적.

JDBC의 장점

1. 표준화
• 다양한 데이터베이스를 일관되게 접근할 수 있는 표준 API 제공.
2. 유연성
• 다양한 데이터베이스 지원 가능(MySQL, Oracle, SQL Server 등).
3. 확장성
• 드라이버 교체만으로 데이터베이스 변경 가능.
4. 실시간 처리
• 자바 애플리케이션에서 실시간으로 데이터베이스 작업 수행 가능.

JDBC의 단점

1. SQL 종속성
• SQL 쿼리를 직접 작성해야 하므로 데이터베이스 종속성이 존재.
2. 복잡한 코드
• 연결 설정, 쿼리 실행, 리소스 관리 등의 코드 작성이 번거로울 수 있음.
3. 성능 제한
• 대규모 데이터 처리에서는 성능이 상대적으로 떨어질 수 있음.

JDBC 사용 사례

1. 웹 애플리케이션
• 사용자가 입력한 데이터를 DB에 저장하거나 조회하는 기능.
• 예: 온라인 쇼핑몰의 주문 내역 저장 및 검색.
2. 데이터 분석
• Java 프로그램에서 대량의 데이터베이스 데이터를 가져와 처리.
• 예: 판매 데이터 분석 애플리케이션.
3. API 백엔드
• JDBC를 사용해 데이터베이스와 통신하고 JSON 형태로 결과 반환.
• 예: REST API의 데이터베이스 연동.

결론

JDBC는 Java 기반의 데이터베이스 연동 기술로, 실시간 데이터베이스 작업을 필요로 하는 애플리케이션에서 중요한 역할을 합니다. 특히 표준화된 접근 방식과 다양한 데이터베이스 지원 덕분에 많은 Java 개발자들이 사용하고 있으며, 데이터베이스와 Java 애플리케이션 간의 효율적인 데이터 처리 환경을 제공합니다.

반응형