Statement和PreparedStatement有什么区别?哪个效率高?

StatementPreparedStatement都是用于执行SQL语句的句柄

但是PreparedStatement代表的是一个预编译的SQL

这两种对象的区别主要体现在以下的三个方面:

第一是使用方面的区别,statement执行的SQL语句必须是一个完整的SQL,而对于PreparedStatement来说,

可以使用“?”作为SQL语句当中的占位符,然后使用PreparedStatementsetXXX方法来给占位符赋值,最后在执行;

 

 

第二个区别是使用Statement时,如果SQL当中出现了“‘”或者“-”等符号时,需要使用转义字符来进行转义,

而在PreparedStatement当中,如果占位符的值当中有这些符号,PreparedStatement会自动的进行转义;

 

 

最后一个区别是PreparedStatement会讲SQL语句进行预编译,每次执行的时候只需要将参数设置给相应的占位符就可以运行。

而使用Statement时,SQL语句时每次都要进行编译,所以PreparedStatement的效率相对较高。

 

注入攻击的解决

posted @ 2020-09-24 19:21  尘缘01  阅读(523)  评论(0编辑  收藏  举报