查询码和查询:无法在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