2012-12-28 83 views

回答

6

把通配符的變量,而不是在聲明中,如:

stmt = db.prepareStatement("SELECT * FROM " + table + " WHERE " + column + " LIKE ?"); 
stmt.setString(1, "myterm%"); 
+0

如果它周圍的代碼,知道它會被用於LIKE,這將是一個設計決定它貧窮綁定變量只有使用像那些語句只會工作 – Bohemian

0

嘗試,包括與LIKE參數的一部分百分號:

db.prepareStatement("SELECT * FROM " + table + " WHERE " + column + " LIKE ?"); 

我不喜歡查詢很多。我不認爲通過這種方式連接表和列可以節省很多。

0

傳遞你的價值到CONCAT()功能:

db.prepareStatement("SELECT * FROM " + table 
    + " WHERE " + column 
    + " LIKE CONCAT(?, '%')"); 

做這種方式進行調用的代碼並不需要知道的參數都與LIKE使用,所以你的優點可以使用與其他非LIKE查詢相同的參數值。