[데브코스] JDBC 1

Updated: Categories:

W4D2 - Docker로 Mysql 띄우고 JDBC 사용법을 배워보자!

JDBC (Java Database Connectivity)

  • 자바와 데이터베이스를 이어주는 브리지 역할
  • JDBC 드라이버는 4가지 종류가 있는데, MySQL은 Type 4이다.

image


순수 JDBC 세팅

// 기본적인 연결
try (
                var connection = DriverManager.getConnection([접속정보]);
                var statement = connection.createStatement();
                var resultSet = statement.executeQuery([쿼리문]);
        ) {
            [resultSet 사용 로직]
        } catch (SQLException e) {
            ...
        }
  • 사용이 끝나면 반드시 커넥션은 끊어줘야 함
    • java 10 부터 try-with-resource가(멘토님이 알려주셨던) 등장했기에 이를 활용하자

PreparedStatement

  • 정처기 공부할 때 나왔던 SQL Injection이 실제로 어떤 상황에서 이루어지는지 살펴봄.
  • 이를 방지하기 위해선 PreparedStatement를 사용해야함
  • PreparedStatement를 사용하면 DB 연결 -> statement 생성 -> 쿼리 이 3단계를 캐시에 저장한다.
    • 캐시를 통한 성능 향상
    • PlacelHolder를 통해 변동적 쿼리 생성
    • 입력값에 의해 쿼리가 변경되는 상황이 방지
// ? 는 setString을 통해 정의해야함
[쿼리문] = "select * from table where column = ? ";
 try (
                var connection = DriverManager.getConnection([접속정보]);
                var statement = connection.prepareStatement([쿼리문]);
        ) {
            statement.setString(인덱스, 입력값);
            try(var resultSet = statement.executeQuery()){
                while (resultSet.next()) {
                    [resultSet 사용 로직]
                }
            }
        } catch (SQLException e) {
            ...
        }