Back-End/Spring

[Spring DB][JDBC 이해] - JDBC 사용

얄루몬 2022. 6. 22. 13:55

💻본 포스팅은 '스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - 김영한'님의 강의를 듣고 작성되었습니다.

https://inf.run/As6W

 

스프링 DB 1편 - 데이터 접근 핵심 원리 - 인프런 | 강의

백엔드 개발에 필요한 DB 데이터 접근 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 DB 접근 기술의 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., - 강의

www.inflearn.com


목차
1. JDBC 등장 배경 다시 정리
2. JDBC 개발 등록, 조회, 수정, 삭제
3. close()

1. JDBC 등장 배경 다시 정리

  • JDBC 표준 인터페이스를 구현해서 데이터베이스마다 다른 커넥션 연결, SQL 전달, 결과 응답에 대한 각 다른 것을 통일 시켰다.

표준화의 한계

  • JDBC가 등장했지만 SQL을 실제 데이터베이스 종류에 따른 문법 맞게 사용해서 작성해야 한다는 번거로움이 있기에 ORM 기술과 SQL Mapper이 등장하게 됐다.

Persistence Framework

JDBC 사용에 번거로운 작업 없이 간단한 작업으로 데이터베이스와 연동할 수 있게 하는 프레임워크를 의미하며, Persistence Framework를 사용하면 시스템을 빠르고 안정성 있게 개발할 수 있다.

  • SQL Mapper
  • ORM

2. JDBC 개발 등록, 조회, 수정, 삭제

public Member save(Member member) throws SQLException {
        String sql = "insert into member(member_id, money) values(?, ?)";

        Connection con = null;
        PreparedStatement pstmt = null;

        try {
            con = getConnection();
            pstmt = con.prepareStatement(sql);
            pstmt.setString(1, member.getMemberId());
            pstmt.setInt(2, member.getMoney());
            pstmt.executeUpdate();
            return member;
        } catch (SQLException e) {
            log.info("db error", e);
            throw e;
        } finally {
            close(con,pstmt,null);
        }
    }
  • 해당 sql문을 작성해준다.
  • 커넥션을 연결해준 뒤 SQL 구문을 실행시켜주는 PreparedStatement를 사용해서 sql 구문을 실행해준다.
  • 또한 사용이 끝났다면 반드시 닫아주어야 한다.

3. close()

  • JDBC를 사용한 뒤에 닫아주지 않게 된다면 connection이 쌓여 결국 고갈이 되는 문제가 발생하게 된다.
  • 그렇기에 JDBC를 모두 사용한 이후라면 close( ) 메소드를 사용해서 닫아주어야 하는데 이때 예상치 못하게 에러 발생으로 close( ) 메소드가 실행되지 않을 수 있기 때문에 이런 문제를 대비하여 따로 작성해주어야 한다.