Spring

JDBC

윤승 2025. 3. 24. 21:51
JDBC란?
JDBC는 자바 애플리케이션이 관계형 데이터베이스와 상호작용하기 위한 표준 Java API이다.
이 API는 Java 애플리케이션이 데이터베이스 관리 시스템(DBMS)과 연결되어, 데이터를 삽입(C), 조회(R), 수정(U), 삭제(D)할 수 있도록 지원한다.

 

JDBC는 Java 애플리케이션과 데이터베이스를 연결하는 표준 방법으로, 개발자는 이를 통해 데이터베이스와의 연결, 쿼리 실행, 결과 처리 등을 쉽게 다룰 수 있다.
JDBC 덕분에 데이터베이스를 변경할 때도 유연하게 대응할 수가 있다.

 

 


 

1️⃣ JDBC 구조

 

 

 

 

 

2️⃣ JDBC의 주요 특징

  1. 표준 API
    • JDBC는 Java에서 관계형 데이터베이스와 상호작용하기 위한 표준 API이며, 대부분의 관계형 데이터베이스 관리 시스템(RDBMS)은 JDBC 드라이버를 제공한다.
    • JDBC만 알면 다양한 DBMS와 일관된 방식으로 통신할 수 있다.
  2. 데이터베이스 연결
    • Connection 객체를 통해 데이터베이스와 연결을 설정한다. 연결을 통해 SQL 문을 실행하고, 트랜잭션을 관리할 수 있다.
  3. SQL 쿼리 실행
    • JDBC에서는 SQL 쿼리를 직접 작성하여 실행합니다. Statement 또는 PreparedStatement 객체를 사용하여 SQL 쿼리를 실행하며, 그 결과를 ResultSet 객체로 반환한다.
  4. 결과 집합 처리 (ResultSet)
    • ResultSet은 SQL SELECT 쿼리의 결과를 행 단위로 반환한다. 이 객체를 통해 데이터베이스에서 가져온 데이터를 자바 객체로 매핑하거나, 처리할 수 있다.
    • 예를 들어, 데이터베이스에서 조회한 결과를 ResultSet 객체에서 꺼내어 Java 객체로 변환하여 사용할 수 있다.
  5. 트랜잭션 관리
    • JDBC를 사용하면 트랜잭션을 관리 작업을 수행할 수 있다.
    • 커밋(commit): 트랜잭션이 성공적으로 완료되었음을 데이터베이스에 반영
    • 롤백(rollback): 트랜잭션 내의 작업이 실패하면 데이터베이스 상태를 이전 상태로 되돌아간다.

 

3️⃣ JDBC 장점과 단점

💡 장점:

  • 표준화: 여러 DBMS에서 일관된 방식으로 사용 가능
  • 유연성: 다양한 SQL 문을 직접 작성하여 실행할 수 있음
  • 성능: PreparedStatement를 사용하여 성능을 최적화할 수 있음

💡 단점:

  • 복잡성: 자원 관리와 오류 처리가 번거롭고, 코드가 길어질 수 있음
  • SQL 주입: 사용자가 입력한 데이터가 SQL 쿼리로 바로 전달될 경우 SQL 인젝션 공격에 취약해짐. 이를 방지하려면 PreparedStatement를 사용해야 함