본문 바로가기

spring(스프링)

[spring(스프링)] Spring JDBC란? _디버깅의 눈물

Spring JDBC란?

 

Spring JDBC는 스프링 프레임워크에서 제공하는 데이터베이스 연동 라이브러리로, 순수 자바 *JDBC에서 자주 발생하는 반복적인 코드 작성, 예외처리, 리소스 해제, 트랜잭션 등을 자동적으로 처리해줍니다.

 

 

순수 자바 JDBC의 예시 코드

 

아래 코드는 순수 자바 JDBC(Java Database Connectivity) API로 구현한 코드 예시입니다.

 

 

import java.sql.*;

public class JDBCTest {

    public static void main(String[] args) {
        
        // JDBC 연결 정보 설정
        String url = "jdbc:mysql://localhost:3306/mydatabase";
        String username = "myuser";
        String password = "mypassword";
        
        // JDBC 연결 객체 생성
        Connection conn = null;
        try {
            conn = DriverManager.getConnection(url, username, password);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        
        // SQL 쿼리 작성
        String sql = "SELECT * FROM customers";
        
        // JDBC Statement 객체 생성
        Statement stmt = null;
        try {
            stmt = conn.createStatement();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        
        // SQL 쿼리 실행
        ResultSet rs = null;
        try {
            rs = stmt.executeQuery(sql);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        
        // 결과 처리
        try {
            while (rs.next()) {
                int id = rs.getInt("id");
                String name = rs.getString("name");
                String email = rs.getString("email");
                System.out.println(id + ", " + name + ", " + email);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        
        // 자원 해제
        try {
            if (rs != null) {
                rs.close();
            }
            if (stmt != null) {
                stmt.close();
            }
            if (conn != null) {
                conn.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

}

 

 

위 코드에서 Connection 객체는 데이터베이스에 연결하는데 사용되며, Statement 객체는 SQL 쿼리를 실행하는데 사용됩니다. ResultSet 객체는 실행된 쿼리의 결과를 처리하는데 사용됩니다. 마지막으로, 자원을 해제하는데 close() 메소드가 사용됩니다.

 

 

Spring JDBC의 장점

 

이와는 달리, Spring JDBC는 Connection, Statement, ResultSet 객체 생성 및 자원 해제를 자동적으로 처리해 개발자에게 편의를 제공합니다. 

 

 

 

 

 

*JDBC(Java DataBase Connectivity)란 스프링 프레임워크를 사용하기 이전, 일반 자바 언어에서 DB연결을 위해 사용하는 표준 인터페이스입니다.