김르르
Apr 7, 2021

쿼리문 수행 후 결과 얻기

실행하는 쿼리의 종류에 따라 잘 구분하여 사용해야한다

boolean flag = stmt.execute(); // create, drop

int cnt = stmt.executeUpdate(); // insert, update, delete

ResultSet rs=stmt.executeQuery(); // select

연결끊기

try{

stmt.close();

con.close();

}catch(SQLException se ){

}

쿼리문 생성객체의 특징

Statement :

  • 쿼리문을 알지 못하는 객체
  • 실행할 때마다 쿼리문을 생성하여 쿼리를 실행
  • SQLinjection 공격에 노출(쿼리문을 외부에서 작성하여 입력할수 O)
  • 값을 쿼리문에 직접 넣어 사용(쿼리문이 복잡)
  • 쿼리문을 한번 실행할 때 효율이 좋다

PreparedStatement :

  • 쿼리문을 알고 있는 객체
  • 쿼리문을 미리 생성해두고, 값만 나중에 넣어 쿼리를 실행
  • SQLinjection 공격에 대한 방어가 된다(쿼리문을 외부에서 입력할수 X)
  • bind 변수를 사용하여 값을 나중에 입력한다 (쿼리문이 간단)
  • 쿼리문을 여러 번 반복 실행할 때 효율 좋다

CallableStatement :

  • Procedure를 호출할 때 사용
  • bind 변수를 사용하여 값을 나중에 입력
  • registerOutParameter를 사용하여 SQLPlus의 bind 변수를 처리
김르르
김르르

Written by 김르르

0 Followers

르르입니다

No responses yet