1、preparedStatement 实例包含已编译的 SQL 语句,所以其执行速度要快于 Statement 对象。
2、preparedStatement可读性和可维护性都要好很多
String sql="insert into tb_name(src1,src2,src3,src4) values (?,?,?,?)"
ps=conn.prepareStatement(sql);
ps.setString(1,var1);
ps.setString(2,var2);
ps.setString(3,var3);
ps.setString(4,var4);
ps.executeUpdate();
3、preparedStatement提交的sql语句在被DB的编译器编译后的执行代码被缓存下来,那么下次调用时只要是相同的预编译语句就不需要编译,最大可能提高性能.
4、最重要的一点,防止恶意的sql语法,保障安全性
String sql = "select * from tablename wherename= '"+name+"' and passwd='"+passwd+"'";如果我们把[' or '1' = '1]作为varpasswd传入进来
1=1无论如何都会成立