execute() 모든 유형의 SQL 문과 함께 사용 가능하며, Boolean 타입의 값 반환 반환 값이 true이면 getReaultSet 메소드를 사용하여 결과 집합 얻음 executeQuery() SELECT 문을 실행할 때 사용 쿼리를 실행하고 결과를 ResultSet 객체로 반환 next() 메소드를 이용하여 선택되는 행 변경 가능하며, 다음 행이 없으면 false 반환 executeUpdate() INSERT, UPDATE, DELETE와 같은 DML(Data Manipulation Language)에서 실행 결과로 영향을 받은 row 수 반환 쿼리를 실행하고, row 수를 반환하기 때문에 결과를 int 로 반환 CREATE, DROP 문에서는 -1 반환
Statement, PreparedStatement 둘 다 SQL문을 실행하고 생성된 결과를 반환하는 객체로 사용되며, 사용자의 입력 값에 따라 쿼리문이 변경될 경우 주로 PreparedStatement 객체를 사용한다. Statement 객체는 SQL문을 실행할 때 매번 구문을 새로 작성하고 해석하여 오버헤드가 존재하지만 PreparedStatement 객체는 SQL 문을 처음에만 분석 후 캐시에 저장하기 때문에 재사용이 용이하다. PreparedStatement 객체는 직접 쿼리를 작성하지 않고 파라미터 바인딩을 사용하여 SQL Injection에도 안전하다.