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

[SOLUCIONADO] Error en ejecucion com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorEx ception:

Estas en el tema de Error en ejecucion com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorEx ception: en el foro de Java en Foros del Web. Hola a todos, ojala me puedan ayudar, tengo el siguiente problema al ejecutar un programa, tengo un paquete de nombre contactos con las clases persona ...
  #1 (permalink)  
Antiguo 20/02/2010, 00:13
 
Fecha de Ingreso: agosto-2009
Ubicación: CHIHUAHUA
Mensajes: 15
Antigüedad: 12 años, 10 meses
Puntos: 0
Error en ejecucion com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorEx ception:

Hola a todos, ojala me puedan ayudar, tengo el siguiente problema al ejecutar un programa, tengo un paquete de nombre contactos con las clases persona y conectate, enlazada a una base de datos de nombre bdcontactos, la clase conectate simplemente hace la conexion a la bd la clase main tiene el siguiente codigo:

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package contactos;

/**
*
* @author Lugardo
*/
public class Main {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
persona p=new persona();
//con esta linea agregamos datos p.NuevaPersona("fulanito","menganito","[email protected] l.com");
Object[][] sc;
sc=p.getDatos();
for(int i=0;i<sc.length;i++){
System.out.println("> "+sc[i][0]+" - "+sc[i][1]);
}
p.con.desconectar();
}

}

y la clase persona tiene el siguiente codigo:

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package contactos;
import java.sql.*;

/**
*
* @author Lugardo
*/
public class persona {
conectate con;

public persona(){
con=new conectate();
}

//añade nuevos registros
public void NuevaPersona(String name, String ap, String mail){
try{
PreparedStatement pstm=con.getConnection().prepareStatement("INSERT INTO personas(nombre,appat,mail) VALUES(?,?,?)");
pstm.setString(1,name);
pstm.setString(2,ap);
pstm.setString(3,mail);
pstm.execute();
pstm.close();
}catch(SQLException e){
System.out.println(e);
}
}

//Obtenemos todos los datos de la tabla
public Object [][] getDatos(){
int x=0;
//Obtenemos la cantidad de registros en la tabla
try{
PreparedStatement pstm=con.getConnection().prepareStatement("SELECT count (1) as total FROM personas");
ResultSet res=pstm.executeQuery();
res.next();
x=res.getInt("total");
res.close();
}catch(SQLException e){
System.out.println(e);
}
Object[][] s=new String[x][2];
//realizamos la consulta sql y llenamos los datos en "Object"
try{
PreparedStatement pstm=con.getConnection().prepareStatement("SELECT id, nombre FROM personas ORDER BY id");
ResultSet res=pstm.executeQuery();
int i=0;
while(res.next()){
String estCodigo=res.getString("id");
String estNombre=res.getString("nombre");
s[i][0]=estCodigo;
s[i][1]=estNombre;
i++;
}
res.close();
}catch(SQLException e){
System.out.println(e);
}
return s;
}

}

el error que me sale como resultado de la ejecucion es:

Conexion a base de datos 'dbcontactos' lista
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorEx ception: FUNCTION dbcontactos.count does not exist. Check the 'Function Name Parsing and Resolution' section in the Reference Manual
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at contactos.persona.getDatos(persona.java:56)
at contactos.Main.main(Main.java:22)
Java Result: 1
GENERACIÓN CORRECTA (total time: 0 seconds)

y se supone que lo que me debe de mostrar hasta este momento son los datos que estan actualmente en la tabla "personas".

Alguien de ustedes sabe a que se refiere este error y como lo puedo solucionar?? de antemano se los agradezco mucho!!
  #2 (permalink)  
Antiguo 20/02/2010, 07:01
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 18 años, 8 meses
Puntos: 51
Respuesta: Error en ejecucion com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorEx cept

Si lees el mensaje de error, te dice que el problema está en que no le gusta la forma en que estas llamando a la funcion count.

¿Has probado con "SELECT COUNT(*) FROM PERSONAS"?

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #3 (permalink)  
Antiguo 20/02/2010, 19:57
 
Fecha de Ingreso: agosto-2009
Ubicación: CHIHUAHUA
Mensajes: 15
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Error en ejecucion com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorEx cept

muchas gracias por la guia mi estimado, ya quedo, modifique esta parte del codigo de la siguiente manera y listo. otra vez muchas gracias y saludos

try{
PreparedStatement pstm=con.getConnection().prepareStatement("SELECT count(1) as id FROM personas");
ResultSet res=pstm.executeQuery();
res.next();
x=res.getInt("id");
res.close();
}catch(SQLException e){
System.out.println(e);
}

Etiquetas: ejecucion
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 04:26.