Statement与PreparedStatement的区别

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的区别)