(个人理解:执行速度,使用方便,代码的可读性维护性,提高性能,安全性 五个方面考虑)
1、PreparedStatement接口继承Statement,PreparedStatement实例包含了预编译的SQL语句,所以PreparedStatement的执行要快于Statement。
2、作为Statement子类,PreparedStatement继承了Statement的所有功能,三个方法execute、executeQuery、executeUpdate已被更改为不需要参数。
3、在JDBC应用中,任何情况下都不适用Statement:
1).代码的可读性和维护性,Statement需要拼接,而PreparedStatement不用。
2).PreparedStatement尽最大可能提高性能,DB有缓存机制,已编译的SQL语句再次被调用不会编译。
3).最重要一点安全性,Statement有SQL注入问题,而PreparedStatement传入的内容不会和sql有任何的匹配关系。