Foros del Web » Programación para mayores de 30 ;) » Java »

problemas con una consulta SQL desde java

Estas en el tema de problemas con una consulta SQL desde java en el foro de Java en Foros del Web. Hola a todos. Tengo el siguiente problema: Necesito hacer desde java una consulta para obtener cuantos registros hay en una tabla cuyo campo "Nombre" contiene ...
  #1 (permalink)  
Antiguo 11/12/2007, 10:08
 
Fecha de Ingreso: marzo-2004
Mensajes: 550
Antigüedad: 20 años, 1 mes
Puntos: 7
Sonrisa problemas con una consulta SQL desde java

Hola a todos.

Tengo el siguiente problema:

Necesito hacer desde java una consulta para obtener cuantos registros hay en una tabla cuyo campo "Nombre" contiene una determinada cadena.

En php me sale perfectamente. Pero hago la consulta en java y no lo consigo.

La consulta en php es la siguiente:

$consulta=mysql_db_query("prueba","select count(*) as 'ocurrencias' from tareas where Nombre like '%$nombreTarea%' ");

Los operadores % al principio y al final de la variable php $nombreTarea se utilizan para indicar que lo que busco son coincidencias con esa cadena almacenada en la variable $nombreTarea.

Ahora, el problema con java es que esos % no me los traga bien.

Inicialmente había puesto:

consulta=conexion.prepareStatement("select count(*) as 'ocurrencias' from tareas where Nombre like %?%");
consulta.setString(1,nombretarea);
resultadoConsulta=consulta.executeQuery();

Entonces me sale un error diciendo que la consulta está mal construida.

Se me ocurrió añadir los % al principio y al final de la variable java "nombretarea" y luego realizar la consulta:

nombretarea="%"+nombretarea+"%";
consulta=conexion.prepareStatement("select count(*) as 'ocurrencias' from tareas where Nombre like ?");
consulta.setString(1,nombretarea);
resultadoConsulta=consulta.executeQuery();

Pero entonces no me interpreta el caracter % como tiene que ser, es decir, que no sabe que se refiere al operador de coincidencias del lenguaje SQL y lo interpreta como un caracter mas del string almacenado en la variable nombretarea.

Nose si me he explicado muy bien jeje.

Resumiendo.....nose como se hace una consulta SQL desde java para obtener el número de registros de una determinada tabla que tienen en su campo "Nombre" un substring determinado.

Ejemplo:

Obtener el número de registros de la tabla tareas que en su campo Nombre aparece la cadena "ant".


Saludos.
  #2 (permalink)  
Antiguo 11/12/2007, 10:24
 
Fecha de Ingreso: mayo-2006
Mensajes: 137
Antigüedad: 17 años, 11 meses
Puntos: 1
Re: problemas con una consulta SQL desde java

Puedes probarlo asi:

("consulta....... and dato LIKE '"+nombreTarea+"%' ");
  #3 (permalink)  
Antiguo 16/12/2007, 00:34
 
Fecha de Ingreso: mayo-2001
Mensajes: 452
Antigüedad: 22 años, 11 meses
Puntos: 1
Re: problemas con una consulta SQL desde java

creo q debe ser:
select count(*) as ocurrencias from tareas where Nombre like '%$nombreTarea%'

Sin el apostrofo sencillo en OCURRENCIAS
__________________
Si necesitas los servicios de un programador ASP, JSP, HTML, JavaScript, ActionScript, o una aplicacion en Visual Basic o Delphi, enviame un email a [email protected]
  #4 (permalink)  
Antiguo 16/12/2007, 05:16
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: problemas con una consulta SQL desde java

Si no recuerdo mal, a mi me funciona con
Cita:
nombretarea="%"+nombretarea+"%";
consulta=conexion.prepareStatement("select count(*) as 'ocurrencias' from tareas where Nombre like '?'");
O sea, con comillas simples alrededor del ? y concatenando los % al valor del parametro.

S!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:18.