Statement - Statement / PreparedStatement
- SQL 구문을 실행하는 역할
- 스스로는 SQL 구문해석 하지 못하고 전달역할
Statement | PreparedStatement |
ㆍ sql문이 달라지더라도 한개만 생성해서 재사용 가능 ㆍ 매번 컴파일 수행 ㆍ 단일로 사용될 때 빠른 속도를 가짐 |
ㆍ statement의 기능 향상 ㆍ 코드 안정성과 가독성이 statement보다 높음 ㆍ sql문마다 객체 각각 생성해야되기 때문에 재사용 불가능 ㆍ 처음 프리컴파일 된 후, 이후에는 컴파일 수행안해도 됨 ㆍ 반복실행시 성능면에서 statement보다 빠름 |
preparedStatement
- Connection 객체의 PreparedStatement() 메서드 이용해 생성가능
- SQL문에 변수가 들어갈 자리는 '?' 로 표시
ex ) String sql = "INSERT INTO 테이블명(속성1,속성2,속성3) values(?,?,?)";
- 실행시 ? 에 대응되는 값 지정
ex) setXXX(int parameterIndex,xxx a); XXX는 변수형
- > setInt(int parameterIndex, int a);
Statement/PreparedStatement 생성코드
//private Statement st;
private PreparedStatement ps;
//String sql = "INSERT INTO 테이블명(속성1,속성2,속성3) values("속성1","속성2","속성3")"
String sql = "INSERT INTO 테이블명(속성1,속성2,속성3) values(?,?,?)";
//st=con.createStatement();
ps = con.prepareStatement(sql);
ps.setInt(1, 속성1);
ps.setString(1, 속성2);
ps.setDouble(1, 속성3);
//st.close();
ps.close();
'DB > MySQL' 카테고리의 다른 글
[JDBC] SQL 수행 메소드 (0) | 2020.11.24 |
---|---|
[JDBC 프로그래밍흐름] ResultSet (0) | 2020.11.20 |
[JDBC 프로그래밍 흐름 ] Connection (0) | 2020.11.18 |
[ JDBC 프로그래밍 흐름 ]JDBC 드라이버 로드 (0) | 2020.11.18 |
[라이브러리] java.sql Package (0) | 2020.11.18 |