2015-04-01 18 views
2

插入SQL的一個特殊的角色,我想這個訪問SQL查詢轉換爲Java JDBC我想在JDBC

Select * From books Where Lcase(title) LIKE Lcase('*jdbc*') AND Lcase(title) LIKE Lcase('*programming*')

我使用PreparedStatement這樣

String sql1="Select * From books Where Lcase(title) LIKE Lcase(%?%) AND Lcase(title) LIKE Lcase(%?%)"; 
PreparedStatement ps1=con.prepareStatement(sql1); 
ps1.setString(1, "jdbc"); 
ps1.setString(2, "programming"); 
ResultSet rs1=ps1.executeQuery(); 

,但我得到語法錯誤

+0

你可以試試這個LCASE( '%%?')。添加這些引號。請給我們一個錯誤日誌 – Ravikiran763 2015-04-01 13:07:05

回答

4

如果要將%插入到Lcase所使用的值中,您有兩個選擇:

  • 添加% S IN的代碼,或在查詢
  • 使用串聯。

第一種方法是這樣的:

String sql1="Select * From books Where Lcase(title) LIKE Lcase(?) AND Lcase(title) LIKE Lcase(?)"; 
PreparedStatement ps1=con.prepareStatement(sql1); 
ps1.setString(1, "%jdbc%"); 
ps1.setString(2, "%programming%"); 

第二種方法是這樣的:

String sql1="Select * From books Where Lcase(title) LIKE Lcase('%' & ? & '%') AND Lcase(title) LIKE Lcase('%' & ? & '%')"; 
+0

謝謝,完美的作品 – 2015-04-01 13:25:43

+0

好的,謝謝你的解釋,我很喜歡網站。 – 2015-04-01 13:43:26