1
我讀過Give me Parameterized SQL or give me death很多次。PreparedStatement#setInt vs inline SQL有沒有優勢?
參數化SQL對字符串,日期和浮點數的優點非常明顯且無可爭議。
我的問題是:int
s?
我問,因爲,通常情況下,如果我正在編寫查詢或更新,並且唯一的參數是int
,我只需編寫內聯sql並將int作爲快捷鍵("select * from table where id = " + id
)添加即可。
我的問題:僅對int
s單獨使用參數化SQL有什麼好處?
與Java說明:
是否有任何優勢,這一點:
Connection conn;
int id;
String sql = "select * from table where id = ?";
try (PreparedStatement p_stmt = conn.prepareStatement(sql)) {
p_stmt.setInt(1, id);
ResultSet results = p_stmt.executeQuery();
// ...
} catch (SQLException e) {
// ...
}
在這個:
Connection conn;
int id;
String sql = "select * from table where id = " + id;
try (Statement stmt = conn.createStatement()) {
ResultSet results = stmt.executeQuery(sql);
// ...
} catch (SQLException e) {
// ...
}
很好的答案。我同意,一致性很重要。 – ryvantage