分析一下Statement和PreparedStatement的却别,以便于更高效的使用。
1)数据库会PreparedStatement语句进行预编译,也叫JDBC存储过程,下次执行相同的sql语句时,数据库端不会再进行预编译了,而直接用数据库的缓冲区,提高数据访问的效率(但尽量尽量采用使用?号的方式传递参数),但statement每次执行sql语句,相关数据库都要执行sql语句的编译。如果sql语句只执行一次,以后不再复用,则建议采用Statement,Statement不会对sql进行预编译。
2)使用PreparedStatement可以提高安全性。传递给PreparedStatement对象的参数可以被强制进行类型转换,使开发人员可以确保在插入或查询数据时与底层的数据库格式匹配。
3)PreparedStatement能有效防止sql注入攻击。
4)PreparedStatement还可以批处理吧。
5)使用PreparedStatement时,我们可以使用“?”占位符,这种方式使用起来很方便。