有沒有內置方法來轉義SQL的字符串?我會使用setString,但是它發生在相同的組合SQL語句中多次使用setString,如果轉義只發生一次,而不是每次我說setString時,性能會更好(我認爲)。如果我有一個變量中的轉義字符串,我可以重新使用它。Java SQL不使用setString逃脫
在Java中沒有辦法做到這一點嗎?
當前方法,多源搜索。實際上,他們是三個完全不同的地方,包括連接,但在這個例子中,我將只顯示每個表的位置。
String q = '%' + request.getParameter("search") + '%';
PreparedStatement s = s("SELECT a,b,c FROM table1 where a = ? UNION select a,b,c from table2 where a = ? UNION select a,b,c FROM table3 where a = ?");
s.setString(1, q);
s.setString(2, q);
s.setString(3, q);
ResultSet r = s.executeQuery();
我知道這不是什麼大不了的事,但我喜歡把事情效率,還有些情況下它是更具可讀性使用" + quote(s) + "
,而不是?
,然後某處在線下找到setString
。
你想逃避什麼人物角色? – RMT
這將有助於您向我們展示您的一些代碼。 – dustmachine
@RMT:由'轉義的所有字符setString'我不想因爲搜索的價值注入攻擊或語法錯誤的可能性。 –