El código de consulta y consulta:¿No se puede usar una consulta LIKE en un JDBC PreparedStatement?
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 ...
Devuelve un vacío ResultSet
.
A través de la depuración básica He encontrado su tercer vinculación que el problema es decir
DSN like '?'
He intentado todo tipo de variaciones, el más sensible de los cuales parecían estar usando:
DSN like concat('%',?,'%')
pero eso no funciona ya que me falta el '
a cada lado de la cadena concatenada, así que intento:
DSN like ' concat('%',Module=P_STAG_JDBC01:poolSize,'%') ' order by 2
pero parece que no puedo encontrar una manera de ponerlos en funcionamiento.
¿Qué me estoy perdiendo?
Escribir código Java en un archivo JSP en lugar de en una clase Java real (donde ** debe ** haberlo hecho) y tener problemas con el código Java particular no lo convierte en un problema JSP. Te enfrentarías exactamente al mismo problema al hacerlo en una clase real de Java. Así que eliminé la etiqueta '[jsp]' ya que eso es irrelevante. – BalusC
Es cierto que no es JSP específico, pero no hay nada * incorrecto * con el uso de dicho código en un servlet de acuerdo con la mayoría de los libros que he leído, especialmente cuando es una página de informe super simple de menos de 40 líneas donde la arquitectura de la aplicación es un poco exagerado :) ¡Pero aprecio tu punto! – SeerUK