ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Spring] JPA 심화 JDBC 끝내기기 - 기초편
    Spring JPA총정리 2025. 5. 1. 13:17

    minecraft-font

    #JDBC #Spring기초

    📘 JDBC FINAL: 완전 기초 편

    이 글은 JDBC의 기초부터 직접 SQL 작성과 실행까지 모두 정리한 문서다.
    나중에 내가 다시 돌아와도, 이 문서 하나로 JDBC는 다시 시작되고, 다시 끝난다.

     

    📚JDBC란 무엇인가

    • JDBC는 자바에서 RDBMS와 통신하기 위한 표준 API이다.
    • MySQL, Oracle, PostgreSQL 등 다양한 DB와 연결할 수 있다.

    🔌 JDBC 드라이버

    • 자바 ↔ DB 통신을 중개
    • DB마다 고유한 드라이버가 필요 (예: com.mysql.cj.jdbc.Driver)

    🔁 JDBC 동작 흐름

    [드라이버 로딩] → [DB 연결] → [Statement 생성] → [SQL 실행] → [결과 처리] → [자원 정리]

    💻 순수 JDBC 코드 예시

    Class.forName("com.mysql.cj.jdbc.Driver");
    Connection conn = DriverManager.getConnection(url, user, password);
    PreparedStatement ps = conn.prepareStatement("SELECT * FROM member WHERE id = ?");
    ps.setLong(1, 1L);
    ResultSet rs = ps.executeQuery();
    if (rs.next()) {
        System.out.println(rs.getString("name"));
    }
    rs.close();
    ps.close();
    conn.close();

     

    ⚠️순수 JDBC의 한계

    문제 설명
    반복 코드 Connection, Statement, ResultSet 처리 반복
    예외 처리 SQLException 직접 처리 필요
    SQL 하드코딩 SQL이 자바 코드에 고정됨
    트랜잭션 처리 commit/rollback 수동 관리
    객체 매핑 ResultSet → 객체 수동 변환

     

    그래서 Spring은 JDBC를 더 편하게 쓰기 위한 도구를 만들었다 → JdbcTemplate

     

    실전 실수 방지 팁

    • SQL 예약어는 피하거나 백틱(`)으로 감싸기 (예: `order`)
    • update()는 수정 행 수 반환 → 0이면 로그 출력
    • Optional로 null 안전하게 처리

     

    📌JDBC를 배우는 이유

    • JPA, MyBatis는 결국 JDBC 위에 만들어진 기술이다.
    • JDBC 흐름을 이해하면 ORM 내부 동작도 이해할 수 있다.
    • 테스트 코드 작성 시 직접 JDBC를 쓰는 경우가 많다.
Designed by Tistory.