需要了解其工作原理
我有以下代码
public static void updateOrdersPrepared(int productId , String productName){
Connection con = getConnection();
try {
pstmt = con.prepareStatement
("update Orders set productname = ? where Prod_Id = ?");
pstmt.setInt(2, productId);
pstmt.setString(1, productName);
pstmt.executeUpdate();
pstmt.close();
con.close();
} catch(SQLException ex) {
System.err.println("SQLException: " + ex.getMessage());
}
JOptionPane.showMessageDialog(null,"Data Updated into Orders Table");
}
现在,如果调用此方法' N'次数,是否计算准备好的陈述的查询计划' N'一次还是只一次?
在这种情况下使用预准备语句是否真的有优势?
答案 0 :(得分:1)
这取决于您要定位的RDBMS。
SQL Server能够为语句"update Orders set productname = ? where Prod_Id = ?"
缓存参数化查询计划,因此会有一个好处。然而,这是一个如此简单的查询,其好处可能会非常小。
您应该在您的特定情况下进行衡量(您的服务器是CPU绑定的,还是I / O绑定的?通常是后者)。
如你所知。使用PreparedStatement的真正好处是准备一次,然后使用不同的参数设置多次调用。