(一)区别
- statement用于执行不带参数的简单sql语句,并返回它所生成结果的对象,每次执行sql语句时数据库都需要编译sql语句,它会发生sql注入危险。
- preparedStatement表示预编译的SQL语句的对象,用于执行带参数的预编译SQL语句。
(二)preparedStatement相对Statement的优点
- 效率更高
- 代码可读性可维护性更好
方法一 statement.executeUpdate("insert into t(col1,col2) values('"+var1+"','"+var2+"')"); 方法二 prestmt = con.preparedStatement("insert into tb_name(cli1,col2) values(?,?)"); prestmt.setString(1,val2); prestmt.setString(2,val2);
- 安全性更好