JDBC란?
JDBC란 Java에서 데이터베이스와 상호작용하기 위한 저수준 API이며 해당 API를 통해 Java에서 여러 데이터베이스와 연결하여 SQL 쿼리를 실행하고 결과를 처리할 수 있게 해주는 표준 인터페이스 이다.
JDBC 주요 특징
1. 저수준 데이터베이스 접근
SQL 쿼리를 직접 작성하여 실행하기 때문에, DB와 해당 DB의 SQL 언어에 대한 이해가 필요하다.
2. SQL 중심 프로그래밍
모든 데이터 조작은 SQL 쿼리를 통해 이루어지며, 쿼리 결과를 ResultSet으로 받아와서 개발자가 직접 Java 객체에 매핑해주어야 한다.
3. 커넥션 관리
JDBC는 데이터베이스 연결을 위해 Connection 객체를 사용하며, 개발자가 직접 이 연결을 직접 생성하고 닫는 등의 처리 및 관리를 해주어야 한다.(잘못된 커넥션 관리로 커넥션 누수가 발생할 수 있다.)
import java.sql.*;
public class JdbcExample {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/mydatabase";
String username = "root";
String password = "password";
try (Connection conn = DriverManager.getConnection(url, username, password);
Statement stmt = conn.createStatement()) {
String query = "SELECT * FROM users";
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
System.out.println("User ID: " + rs.getInt("id"));
System.out.println("User Name: " + rs.getString("name"));
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
JDBC 주요 장단점
장점
1. 직접적인 데이터베이스 접근
쿼리를 직접 작성하여 사용하기 때문에 DBMS 특화 기능(MySQL의 LIMIT, Oracle의 ROWNUM 등)을 자유롭게 사용할 수 있다.
2. 높은 성능
저수준 API 이기 때문에, 추가적인 추상화 계층이 없어 빠른 성능을 발휘한다.
3. DBMS 독립성
표준화된 API를 제공하여 jdbc 드라이버만 맞게 설정하면, 별다른 코드 변경 없이 다른 DBMS로 전환할 수 있다.
단점
1. 반복적인 코드
DB 연결, SQL 쿼리 작성, 결과 처리, 트랜잭션 관리 등의 반복적인 코드가 발생할 수 밖에 없다.
2. 객체 관계 매핑 문제
스키마와 Java 객체간의 매핑을 수동으로 처리해야 하기 때문에 예외 발생, 유지보수성 복잡성이 증가한다.
3. 트랜잭션과 리소스 관리 부담
JDBC는 트랜잭션을 수동으로 관리해야 하며, Conenction, ResultSet 등의 리소스를 직접 관리해야 한다.
4. DBMS 종속성
jdbc 드라이버를 통해 표준화된 API로 사용은 가능하지만, SQL 쿼리는 각 DB에 맞게 직접 작성해야하기 때문에 종속성이 발생할 수 있다.
'공부 > Spring Boot' 카테고리의 다른 글
[Database] 03. QueryDSL (1) | 2024.11.15 |
---|---|
[Database] 02. JPA (0) | 2024.11.14 |
[Spring Batch] 01. Spring Batch 기본 개념 (0) | 2024.11.13 |
[스프링 부트 공부 일지] 4. 웹 어플리케이션 서버 구축하기 (2) (0) | 2022.12.22 |
[스프링 부트 공부 일지] 4. 웹 어플리케이션 서버 구축하기 (1) (0) | 2022.12.21 |