Die Abfrage-Code und Abfrage:Kann keine LIKE-Abfrage in einem JDBC PreparedStatement verwendet werden?
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 ...
Gibt eine leere ResultSet
.
Durch grundlegende Debuggen Ich habe seine die dritte binden gefunden, dass das Problem also
istDSN like '?'
ich alle Arten von Variationen versucht haben, die vernünftigste davon verwendet zu werden schien:
DSN like concat('%',?,'%')
aber das funktioniert nicht, da ich die '
auf beiden Seiten der verketteten Zeichenfolge fehlt, so versuche ich:
DSN like ' concat('%',Module=P_STAG_JDBC01:poolSize,'%') ' order by 2
aber ich kann einfach nicht einen Weg finden, um sie in das funktioniert zu bekommen.
Was fehlt mir?
Java-Code in eine JSP-Datei schreiben statt in eine echte Java-Klasse (wo Sie ** es getan haben sollten) und Probleme damit haben der bestimmte Java-Code macht es nicht zu einem JSP-Problem. Sie würden in einer echten Java-Klasse genau dem gleichen Problem gegenüberstehen. Also habe ich das '[jsp]' - Tag entfernt, da das irrelevant ist. – BalusC
Wahr ist es nicht JSP spezifisch, aber dann gibt es nichts * falsch * mit der Verwendung solchen Codes in einem Servlet nach den meisten Büchern, die ich gelesen habe, besonders wenn es eine super einfache Berichtsseite von weniger als 40 Zeilen Code ist, wo Anwendungsarchitektur ist ein wenig Overkill :) Aber ich schätze Ihren Standpunkt! – SeerUK