美文网首页
Statement与PreparedStatement的区别

Statement与PreparedStatement的区别

作者: Kee丶 | 来源:发表于2017-09-15 18:48 被阅读0次

1:创建时的区别:

Statement statement = conn.createStatement();

PreparedStatement preStatement = conn.prepareStatement(sql);

执行的时候:

ResultSet rSet = statement.executeQuery(sql);

ResultSet pSet = preStatement.executeQuery();

由上可以看出,PreparedStatement有预编译的过程,已经绑定sql,之后无论执行多少遍,都不会再去进行编译,

而 statement 不同,如果执行多变,则相应的就要编译多少遍sql,所以从这点看,preStatement 的效率会比 Statement要高一些.

preStatement是预编译的,所以可以有效的防止 SQL注入等问题

2.prepareStatement可以替换变量

在SQL语句中可以包含?,可以用ps=conn.prepareStatement("select * from Cust where ID=?");

int sid=1001;

ps.setInt(1, sid);

rs = ps.executeQuery();

可以把?替换成变量。

而Statement只能用

int sid=1001;

Statement stmt = conn.createStatement();

ResultSet rs = stmt.executeQuery("select * from Cust where ID="+sid);

来实现。

相关文章

网友评论

      本文标题:Statement与PreparedStatement的区别

      本文链接:https://www.haomeiwen.com/subject/kcresxtx.html