PreparedStatement接口:
是statement接口的子接口,扩展了statement接口,可以通过in参数进行处理,对in参数用占位符?表示。
PreparedStatement的基本工作原理:预编译的机制,插入时,先占位,之后再设置内容。
PreparedStatement和Statement区别:
*安全性: 1 statement使用字符串追加的方式得到sql文,容易出现sql注入,导致数据不安全
2 PreparedStatement是提供了对in参数的处理,故不会出现sql注入,数据安全
*执行效率:1statement是用户每发送一次sql,oracle数据库端就编译一次,然后执行
2 PreparedStatement:预编译的机制:只有第一次发送sql时候,编译后放到oracle数据库端,以后再发出相同的请求,
则不再编译直接执行sql文,所执行效率更高。
String sql = "SELECT USER_ID,USERNAME,PASSWORD FROM T_USER WHERE USERNAME like '%'||?||'%'";
pstmt = conn.prepareStatement(sql);pstmt.setString(1, "%a%"); 占位符的位置从1开始,不是0,resultSet结果集的列也是从1开始,不是0.