1. PreparedStatement 는 준비된 Statement 이다
미리 SQL문이 셋팅된 Statement가 DB에 전송되어저 컴파일되어지고
SQL문의 ? 부분만 나중에 추가 셋팅해서 실행이 되어지는
준비된 Statement 이다
<Statement 사용법>
Statement stmt=con.createStatement();// 생성, 생성시 인자 안들어간다
stmt.executeUpdate(sql);// 실행시 인자가 들어간다
stmt.executeQuery(sql);
<PreparedStatement 사용법>
PreparedStatement pstmt=con.prepareStatement(sql);// 생성시 인자 들어간다
pstmt.setXxx(1,값);
pstmt.setXxx(2,값);
pstmt.setXxx(3,값);
pstmt.executeUpdate();// 실행시 인자 안들어간다
pstmt.executeQuery();
------------------------------------------------------------------------------------
2. PreparedStatement 장점
반복적(for) 인 SQL문을 사용할 경우에 Statement보다 빠르다
(이유는 ? 를 제외한 SQL문이 DB에서 미리 컴파일 되어져서 대기하고 있기 때문에)
3. 단점
SQL문마다 PreparedStatement 객체를 각각 생성해 줘야 한다
( 재 사용이 불가능해서, 새로 생성 해야 한다 )
Statement객체는 SQL문이 달라지더라도 한개만 생성해서 재사용 가능하다
( 실행시 sql 문이 들어가기 때문에)
4. Statement 반복 사용 할때
stmt=con.createStatement();
String content="김장면";
for(int i=0; i<10000;i++)
{
//stmt.executeUpdate("insert into test values('"+content+"')");
stmt.executeUpdate("insert into test values('김장면')"); //실행시 인자가 들어간다
}
5. PreparedStatement 반복 사용 할때
pstmt=con.prepareStatement("insert into test values(?)"); // 생성시 인자가 들어간다.
for(int i=0 ; i<10000;i++)
{
pstmt.setString(1,content+i);
pstmt.executeUpdate();
}
<끝>
'Web Programming > Java' 카테고리의 다른 글
Java(자바) OOP(Object Oriented Programming) 객체지향 (0) | 2018.01.20 |
---|---|
Java(자바) IO(Input / Output) (0) | 2018.01.20 |
Java(자바) Exception(예외) (0) | 2018.01.20 |
Java(java) Dialog(대화상자) (0) | 2018.01.20 |
Java(java) Layout(레이아웃) (0) | 2018.01.20 |