statement和preparedstatement的区别

时间:2024-10-04 13:05:26

在执行SQL命令时,我们有二种选择:可以使用PreparedStatement对象,也可以使用Statement对象。无论多少次地使用同一个SQL命令,PreparedStatement都只对它解析和编译一次。当使用Statement对象时,每次执行一个SQL命令时,都会对它进行解析和编译。

第一:
prepareStatement会先初始化SQL,先把这个SQL提交到数据库中进行预处理,多次使用可提高效率。
createStatement不会初始化,没有预处理,没次都是从0开始执行SQL

第二:
1.prepareStatement可以替换变量
在SQL语句中可以包含?,可以用ps=conn.prepareStatement("select* from ljg where id=?");
int id=20;
ps.setInt(1, id);
rs = ps.executeQuery();
可以把?替换成变量。

2.而Statement只能用
int id=20;
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from ljg where id="+id);
来实现。