20230728 prepared statement

Daisy🌷·2023년 7월 28일
0

prepared statement

데이터베이스 관리 시스템(DBMS)에서 동일하거나 비슷한 데이터베이스 문을 높은 효율성으로 반복적으로 실행하기 위해 사용되는 기능이다.
일반적으로 쿼리나 업데이트와 같은 SQL 문과 함께 사용되는 prepared statement는 템플릿의 형태를 취하며 그 템플릿 안으로 특정한 상수값이 매 실행 때마다 대체된다.

workflow

1. 준비(Prepare)

먼저 애플리케이션은 문의 틀을 만들고 이를 DBMS로 보낸다. 특정값은 지정하지 않은 채로 남겨지며 이들은 "변수", "플레이스홀더", "바인드 값"으로 부른다.
INSERT INTO products (name, price) VALUES (?, ?);

2. DBMS는 문의 틀을 컴파일하며(최적화 및 변환) 아직 실행하지 않고 결과만 저장한다.

3. 실행(Execute)

나중에 애플리케이션이 문 틀의 변수에 값(바인드)를 지정하면 DBMS는 (결과를 반환할 수도 있는) 문을 실행한다. 애플리케이션은 여러 값으로 원하는 횟수만큼 문을 실행할 수 있다.

예시코드

jdbcTemplate.update("" +
                        "INSERT INTO account(" +
                        " id, amount, user_Id, encoded_Password, user_Name)" +
                        " VALUES(2, 500000, ?, ?, ?)",
                "a111", passwordEncoder.encode("Aa1!!!!!"), "내이름"
        );

Prepared Statement의 ? 플레이스홀더에 각각 "a111", passwordEncoder.encode("Aa1!!!!!"), "내이름" 값이 순서대로 바인딩된다. 이 값들은 변수로 전달되는 동적인 데이터다.

profile
티스토리로 블로그를 이전했습니다. 😂 구경 오세요! 👉🏻 https://u-ryu-logs.tistory.com

0개의 댓글