我正在通過傳遞查詢字符串的值來準備SQL語句。 (我正在使用Play!框架,基本上我遇到的問題(不是真的只是我不太喜歡的問題)是,當我想在SQL字符串中使用?
,並在稍後使用動態值設置它們時。在Java中準備動態語句的正確方法
這是我有:
String sql = "SELECT * FROM foobar_table WHERE";
if (foo != 0)
sql += " AND foo=?";
if (!bar)
sql += " AND bar=?";
try{
PreparedStatement getStmt = con.prepareStatement(sql);
if (foo != 0)
getStmt.setInt(1,foo);
if (foo != 0 && !bar)
getStmt.setBoolean(2, bar);
else
getStmt.setBoolean(1, bar);
} catch (SQLException e){
e.printStackTrace();
}
這的工作,但你可以看到不是很直觀很確定,當有2個動態值,但是當你起牀到5或6此只想得到荒謬
有沒有一個更簡單的方法來做到這一點,使它更靈活,以便我知道如何填寫所有?
以更好的方式?
像這樣最好..很好,乾淨。謝謝 – locrizak