Java를 배워보자/9. 심화 학습

자바 JDBC (Java Database Connectivity)

_Blue_Sky_ 2024. 9. 27. 13:01
728x90
728x90

자바 JDBC: 데이터베이스와 자바를 연결하는 다리

소개

자바 JDBC(Java Database Connectivity)는 자바 애플리케이션에서 다양한 종류의 데이터베이스에 연결하여 데이터를 주고받을 수 있도록 하는 표준 API입니다. JDBC를 사용하면 자바 개발자는 데이터베이스에 대한 복잡한 처리 과정을 직접 구현하지 않고, JDBC가 제공하는 간편한 인터페이스를 통해 데이터베이스와 상호작용할 수 있습니다.

왜 JDBC를 사용해야 할까요?

  • 표준화: JDBC는 자바 플랫폼에서 데이터베이스 연결을 위한 표준 인터페이스입니다. 따라서 어떤 데이터베이스를 사용하더라도 동일한 방식으로 접근할 수 있습니다.
  • 생산성 향상: JDBC를 사용하면 반복적인 데이터베이스 연결, SQL 실행, 결과 처리 등의 작업을 간소화하여 개발 생산성을 높일 수 있습니다.
  • 다양한 데이터베이스 지원: JDBC는 Oracle, MySQL, PostgreSQL 등 다양한 종류의 데이터베이스를 지원합니다.
  • 안정성: JDBC는 오랜 시간 동안 사용되어 온 검증된 기술로, 안정적인 데이터베이스 연결을 보장합니다.

JDBC의 주요 구성 요소

  • JDBC 드라이버: JDBC 드라이버는 자바 애플리케이션과 데이터베이스 사이의 통신을 담당합니다. 각 데이터베이스 벤더는 자사의 데이터베이스에 맞는 JDBC 드라이버를 제공합니다.
  • DriverManager: JDBC 드라이버를 관리하고, 데이터베이스 연결을 생성하는 역할을 합니다.
  • Connection: 데이터베이스에 대한 연결을 나타냅니다. 하나의 Connection 객체는 하나의 데이터베이스 연결을 의미합니다.
  • Statement: SQL 문을 실행하기 위한 객체입니다.
  • PreparedStatement: 미리 컴파일된 SQL 문을 실행하기 위한 객체로, 동일한 SQL 문을 반복적으로 실행할 때 성능을 향상시킵니다.
  • ResultSet: SQL 문 실행 결과를 저장하는 객체입니다.

JDBC를 사용하는 단계

  1. JDBC 드라이버 로딩: 클래스 로더를 사용하여 JDBC 드라이버를 메모리에 로딩합니다.
  2. 데이터베이스 연결: DriverManager 클래스의 getConnection() 메서드를 사용하여 데이터베이스에 연결하고 Connection 객체를 얻습니다.
  3. SQL 문 실행: Statement 또는 PreparedStatement 객체를 생성하고, executeQuery() 또는 executeUpdate() 메서드를 사용하여 SQL 문을 실행합니다.
  4. 결과 처리: ResultSet 객체를 사용하여 SQL 문 실행 결과를 가져와 처리합니다.
  5. 자원 해제: 사용한 Connection, Statement, ResultSet 객체를 닫아 시스템 자원을 반환합니다.

JDBC 예제

import java.sql.*;

public class JdbcExample {
    public static void main(String[] args) {
        try {
            // JDBC 드라이버 로딩 (예: MySQL)
            Class.forName("com.mysql.cj.jdbc.Driver");

            // 데이터베이스 연결
            Connection conn = DriverManager.getConnection(
                    "jdbc:mysql://localhost:3306/mydatabase",
                    "user", "password");

            // SQL 문 실행
            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery("SELECT * FROM users");

            // 결과 처리
            while (rs.next()) {
                String name = rs.getString("name");
                int age = rs.getInt("age");
                System.out.println("Name: " + name + ", Age: " + age);
            }

            // 자원 해제
            rs.close();
            stmt.close();
            conn.close();
        } catch (ClassNotFoundException | SQLException e) {
            e.printStackTrace();
        }
    }
}
 
 

JDBC의 장점과 단점

  • 장점:
    • 표준화된 인터페이스
    • 다양한 데이터베이스 지원
    • 높은 유연성
  • 단점:
    • 복잡한 SQL 문 작성 시 어려움
    • 예외 처리가 필요
    • 성능 최적화를 위한 노력이 필요

결론

JDBC는 자바 애플리케이션에서 데이터베이스를 효과적으로 활용하기 위한 필수적인 기술입니다. JDBC를 숙달하면 다양한 데이터베이스 시스템을 자유롭게 활용하여 강력한 애플리케이션을 개발할 수 있습니다.

 

728x90
728x90