연장챙겨

statement, preparedStatement 본문

카테고리 없음

statement, preparedStatement

계속까먹어 2021. 2. 13. 15:00

-statement-

Mybatis : ${text}

JDBC : Statement statement = connection.createStatement() -> statement.executeQuery(text)

 

0. 정적 쿼리(static sql < literal query)

1. 문자열 그대로 쿼리실행(SQL Injection발생위험)

2. 작업마다 compile함

3. hard parsing

 

 

 

 

-preparedStatement-

Mybatis : #{text}

JDBC : PreparedStatement preparedStatement = connection.preparedStatement(text) -> preparedStatement.setString(index, text) -> preparedStatement.executeQuery()

 

0. 동적 쿼리(dynamic sql < binding query)

1. 바인드 변수 사용

2. 첫작업만 compile

3. 보편적으로 사용

4. soft parsing