PreparedStatement 和 Statement 区别
- PreparendStatement 是可以预编译sql
Statement statement = conn.createStatement();
PreparedStatement preStatement = conn.prepareStatement(sql);
PreparedStatement有预编译过程,已经绑定sql,之后无论执行多少遍,多不会再编译。效率要比Statement要高一些
- 安全性PreparedStatement安全性要高,因为sql是预编译的,可以有效防止sql注入
- PreparedStatement可读性要高
public void f(){
// Statement执行一条插入语句
stmt.executeUpdate("INSERT INTO tbl_name (col1,col2,col3,col4)
VALUES ('"+var1+"','"+var2+"',"+var3+",'"+var4+"')");
// PreparedStatement执行一条插入语句
perstmt = con.prepareStatement("insert
into tb_name (col1,col2,col2,col4) values (?,?,?,?)");
perstmt.setString(1,var1);
perstmt.setString(2,var2);
perstmt.setString(3,var3);
perstmt.setString(4,var4);
perstmt.executeUpdate();
}