sentencias SQL java
Hola a Todos de nuevo yo preguntando esto: actualmente estoy usando jdbc Puro!!!, para hacer la labor a la bd mi duda es cuando utilizo un preparedStatement en una sentencia LIKE, jamas me regresa resultados, en cambio si en lugar de usar un prepared utilizo la concatenacion de la cadena funciona sin problemas alguna idea?
- Inicie sesión o regístrese para enviar comentarios
comillas
Ese objeto
es una clase? porque empieza con mayúscula... o es un StringBuilder? no es recomendable que armes SQL así a mano. Imagínate qué pasa si
devuelve lo que el usuario haya tecleado y no lo validas? Si el usuario pone
te borran todos los datos de la tabla (no veo el nombre de la tabla en tu código pero si eso se ejecuta, es cosa de empezarle a poner nombres de las tablas del sistema para borrarlas, o simplemente ejecutar queries distintos, o bien unos UPDATES, etc). La cosa es que ese código es vulnerable a inyección de SQL. Usa PreparedStatements.
Si tuvieras un PreparedStatement con el SQL
(el cual pudiste haber armado con un StringBuilder, pero no insertas los parámetros directamente en el texto de SQL entonces simplemente le haces después:
y eso te encuentra cualquier cosa (incluyendo el SQL malicioso que describí al principio; lo busca en el campo PRO_DES, no lo ejecuta).
No nos dices como haces ese
No nos dices como haces ese like con prepared statements que jamás regresa resultados, pero básicamente haz lo que menciona ezamudio:
O sea pon el % en el "setString"
Un ejemplo de
Un ejemplo de PreparedStatement.
Espero te sirva.
Lo mismo pero con JdbcTemplate
Que tal,
Saben como hacer lo arriba mencionado pero con JdbcTemplate, estoy intentando lo siguiente pero no resulta.
La pagina me manda un rotundo java.lang.NullPointerException
De antemano gracias.
Me respondo
El problema es que no lleva comillas entre el signo de interrogación, quedando
Saludos
Gracias a todos
Gracias a todos efectivamente el problema eran las comillas y lo del simpleJdbcTempelate ya lo teniamos en otro proyecto pero al fabuloso arquitecto no le gusta ni sabe spring y por eso tubimos que quitarlo y regresar a la edad de piedra con JDBC puro de nuevo muchas gracias a todos en breve espero postear el codigo fuente de este proyecto ya que estoy aprendiendo mucho
el uso de la sentencia
Hola no entiendo porque pones la creacion de un arreglo de Objeto?, porq no usas simpleJdbc Templeate? claro si estas usando java 5 o superior esto te ahorraria mucho pero mucho codigo inecesario ahora en el parametro que envias la sentencia bastaria con mandar simplemente la cadena que deseas buscar
@ingscjoshua
Hola @ingscjoshua, uso JdbcTemplate por que lo estoy estudiando XD, pero ahora que lo comentas voy a leer SimpleJdbcTemplate.
Gracias.
de nada
Pues si deberias revisarlo es bastante funcional he aqui un ejemplo.
simpleJdbcTemplate
¿En donde puedo encontrar informacion de simpleJdbcTemplate?, busque en la api de java6 y no encontre informacion. Es la primera vez que encuentro una referencia a esa tecnologia.
Gracias por la ayuda.
Documentación de Spring,
Documentación de Spring, apartado de Spring JDBC ...
aquí
Spring 3.0
En Spring 3.0 es org.springframework.jdbc.core.simple.SimpleJdbcTemplate.
Históricamente, primero existía sólo org.springframework.jdbc.core.JdbcTemplate, pero con Spring 2.0 o 2.5 no recuerdo bien cuál, agregaron clases nuevas para aprovechar los generics en Java 5. A partir de Spring 3.0 están migrando todo el framework para usar Java 5, y es por eso que a partir de Spring 31 SimpleJdbcTemplate ha sido marcada como deprecada, ya que todos sus métodos han sido integrados de vuelta a JdbcTemplate.
Así que si usas Spring 3.1.0.M2, es mejor que de una vez uses JdbcTemplate, y ya no SimpleJdbcTemplate, que eventualmente desaparecerá.
Gracias de nuevo
Gracias de nuevo