查詢碼和查詢:無法在JDBC PreparedStatement中使用LIKE查詢?
ps = conn.prepareStatement("select instance_id, ? from eam_measurement where resource_id in (select RESOURCE_ID from eam_res_grp_res_map where resource_group_id = ?) and DSN like '?' order by 2");
ps.setString(1,"SUBSTR(DSN,27,16)");
ps.setInt(2,defaultWasGroup);
ps.setString(3,"%Module=jvmRuntimeModule:freeMemory%");
rs = ps.executeQuery();
while (rs.next()) { bla blah blah blah ...
返回一個空ResultSet
。
通過基本的調試,我發現它的第三綁定即即
DSN like '?'
我已經嘗試了各種變化,這是最明智的似乎的問題可以用:
DSN like concat('%',?,'%')
但這不起作用,因爲我在連接字符串的任一側上缺少'
,所以我嘗試:
DSN like ' concat('%',Module=P_STAG_JDBC01:poolSize,'%') ' order by 2
但我似乎無法找到一種方法讓他們在作品中。
我錯過了什麼?
將Java代碼寫入JSP文件而不是寫入真正的Java類(您應**已經完成它),並且遇到問題特定的Java代碼不會使其成爲JSP問題。在真正的Java類中這樣做時,您將面臨完全相同的問題。所以我刪除了'[jsp]'標籤,因爲這是無關緊要的。 – BalusC 2010-05-18 12:52:36
真的,它不是JSP特定的,但是根據我讀過的大多數書籍,在servlet中使用這樣的代碼沒有什麼錯誤,特別是當它是一個超過40行代碼的超級簡單報告頁面時,應用程序體系結構是有點矯枉過正:)但我很感謝你的觀點! – SeerUK 2010-05-18 13:12:02