elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Conector de mysql no me funciona con eclipse en ubuntu
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Conector de mysql no me funciona con eclipse en ubuntu  (Leído 5,328 veces)
Aikanáro Anário


Desconectado Desconectado

Mensajes: 694



Ver Perfil WWW
Conector de mysql no me funciona con eclipse en ubuntu
« en: 29 Noviembre 2011, 08:27 am »

Ya antes había trabajo en ubuntu con eclipse, mysql y el conector, de hecho hace tan solo un par de semanas. Pero hoy resulta que cuando voy a crear la clase de conexión a la base de datos, no me funciona me da un null pointerException. No dice específicamente que es por eso, pero creo que sí porque aunque haya un error en la ruta de la base de datos o en la ruta para especifiar el driver, nada cambia y sigue dándome el nullPorinterException.

Mi clase conexión:
Código
  1. import java.sql.Connection;
  2. import java.sql.DriverManager;
  3. import java.sql.ResultSet;
  4. import java.sql.Statement;
  5. import javax.swing.JOptionPane;
  6.  
  7. public class ConexionBD {
  8.  
  9. public final static String driver = "com.mysql.jdbc.Driver"; //ruta donde se encuentra el driver importado al proyecto
  10. public final static String bd = "jdbc:mysql://localhost:3306/BDAdminEventos"; //protocolo:servidorBD:direccion:puerto/nombreBD
  11. public final static String usuario = "gustavo";
  12. public final static String contrasena = "123";
  13.  
  14. public Statement st;
  15.  
  16. public void ConexionBD() {
  17. try {
  18. Class.forName(driver); //Especifico el driver a usar
  19. ct = DriverManager.getConnection(bd,usuario,contrasena); // hago la conexion usando el objeto Connection
  20. st = ct.createStatement(); //creo el query
  21. System.out.println("Conexion exitosa");
  22. // JOptionPane.showMessageDialog(null, "Conexión Exitosa");
  23. }
  24. catch(Exception ex) {
  25. // JOptionPane.showMessageDialog(null, "Conexión Fallida");
  26. System.out.println("fallo");
  27. ex.printStackTrace();
  28. }
  29. }
  30.  
  31. public void crearSentencia() {
  32. try {
  33. //objeto que tiene el resultado del query
  34. ResultSet rs = st.executeQuery("Select * from Invitado"); //especifico el contenido del query al ejecutarlo
  35. while(rs.next()) //mientras hayan resultados ...
  36. System.out.println(rs.getString(1)); //imprime la celda 2 (nombre)
  37. }
  38. catch(Exception ex) {
  39. ex.printStackTrace();
  40. }
  41. }
  42. }
  43.  

Clase main

Código
  1.  
  2.  
  3. public class Prueba {
  4.  
  5. public static void main(String[] args) {
  6.  
  7. ConexionBD conexion = new ConexionBD();
  8. conexion.crearSentencia();
  9.  
  10. }
  11.  
  12. }

Me da nullPointerException en esta línea:
Código
  1. ResultSet rs = st.executeQuery("Select * from Invitado"); //especifico el contenido del query al ejecutarlo

No estoy muy seguro que sea por el conector, ya que tengo un proyecto que está funcionando bien, pero los otros no. Y me aseguré de agregar el conector en Propiedades del proyecto > java bulit path > add externar jar > agregar conector. ¿Qué está pasando?


En línea

Lo que faltaba en internet: http://binar10s.blogspot.com/
adastra
Endless Learner
Ex-Staff
*
Desconectado Desconectado

Mensajes: 885


http://thehackerway.com/


Ver Perfil WWW
Re: Conector de mysql no me funciona con eclipse en ubuntu
« Respuesta #1 en: 29 Noviembre 2011, 09:08 am »

El objeto "st" es nulo.

Class.forName("com.mysql.jdbc.Driver").newInstance();

para instanciar correctamente el driver.


En línea

Aikanáro Anário


Desconectado Desconectado

Mensajes: 694



Ver Perfil WWW
Re: Conector de mysql no me funciona con eclipse en ubuntu
« Respuesta #2 en: 29 Noviembre 2011, 09:43 am »

Sigue igual.
Lo que estoy intentando es lo mismo de este video: http://www.youtube.com/watch?v=LcFEKKIjKOY&feature=BFa&list=PL6CB9511C76756471&lf=plpp_video

En línea

Lo que faltaba en internet: http://binar10s.blogspot.com/
adastra
Endless Learner
Ex-Staff
*
Desconectado Desconectado

Mensajes: 885


http://thehackerway.com/


Ver Perfil WWW
Re: Conector de mysql no me funciona con eclipse en ubuntu
« Respuesta #3 en: 29 Noviembre 2011, 09:52 am »

Que versión del mysql-connector tienes?
En línea

adastra
Endless Learner
Ex-Staff
*
Desconectado Desconectado

Mensajes: 885


http://thehackerway.com/


Ver Perfil WWW
Re: Conector de mysql no me funciona con eclipse en ubuntu
« Respuesta #4 en: 29 Noviembre 2011, 09:58 am »

Postea la traza de la excepción completa, creo que lo que te esta pasando es que no se puede establecer la conexión...  :-\
En línea

Aikanáro Anário


Desconectado Desconectado

Mensajes: 694



Ver Perfil WWW
Re: Conector de mysql no me funciona con eclipse en ubuntu
« Respuesta #5 en: 29 Noviembre 2011, 15:04 pm »

Esa es la traza de error completa:

Citar
java.lang.NullPointerException
   at ConexionBD.crearSentencia(ConexionBD.java:36)
   at Prueba.main(Prueba.java:9)
No hay nada mas.

La versión es la que hay ahora mismo en la página de mysql: Connector/J 5.1.18
En línea

Lo que faltaba en internet: http://binar10s.blogspot.com/
adastra
Endless Learner
Ex-Staff
*
Desconectado Desconectado

Mensajes: 885


http://thehackerway.com/


Ver Perfil WWW
Re: Conector de mysql no me funciona con eclipse en ubuntu
« Respuesta #6 en: 29 Noviembre 2011, 15:30 pm »

De acuerdo, el problema no esta en Statement ni en la conexión, esta en el ResultSet, la linea 36 es esta esto:

Código:
while(rs.next()) //mientras hayan resultados

indica que el ResultSet es nulo y que la consulta no se ha ejecutado correctamente. Verifica los siguientes puntos:

hay datos en la tabla?
"Invitado" es una tabla existente en BD?
es tabla o vista?
esta con la "I" mayuscula o con "i" en el esquema?
has intentado ejecutar otra consulta con una tabla distinta o contra el esquema por defecto de mysql?
puedes ejecutar un SHOW TABLES? que te retorna?

Para resumir, verifica que lo que estas intentando consultar existe y es valido en la BD.
En línea

Aikanáro Anário


Desconectado Desconectado

Mensajes: 694



Ver Perfil WWW
Re: Conector de mysql no me funciona con eclipse en ubuntu
« Respuesta #7 en: 30 Noviembre 2011, 17:17 pm »

Citar
De acuerdo, el problema no esta en Statement ni en la conexión, esta en el ResultSet, la linea 36 es esta esto:

Código:
while(rs.next()) //mientras hayan resultados

La línea 36 es cuando le doy el valor al ResultSet, como lo contaste según lo que pegue parece que se me quedo una línea, pero eclipse me dice que es esta:
Código:
ResultSet rs = st.executeQuery("SELECT * FROM Invitado"); //especifico el contenido del query al ejecutarlo


Citar
hay datos en la tabla?
Sí, hay varios invitados, con su nombre, apellido, direccion, etc.

Código:
"Invitado" es una tabla existente en BD?
Sí, así mismo como está escrita: primera letra en mayúscula, lo demás en minúscula y en sigular.

Código:
es tabla o vista?
No sé lo que es una vista, pero sé que es una tabla :P

Código:
esta con la "I" mayuscula o con "i" en el esquema?
Mayúscula

Citar
has intentado ejecutar otra consulta con una tabla distinta o contra el esquema por defecto de mysql?
Intenté con otra base de datos y pasa exactamente lo mismo. El mismo error, en la misma línea. No sé como seleccionar un esquema por defecto, bueno para hacer los querys en el mismo workbench lo que hago es darle doble clic, pero eso no cambia nada.

Citar
puedes ejecutar un SHOW TABLES? que te retorna?
No puedo pasa lo mismo:
Código
  1. ResultSet rs = st.executeQuery("SHOW TABLES");
  2. while(rs.next())
  3. System.out.println(rs.getString(1)); [code]
[/code]


Es muy raro.... porque tengo un proyecto con un programa que hace una llamada (ficticia) y la inserta en una base de datos y funciona correctamente. Y al proyecto con el que tengo el error ahora le especifiqué que use esa misma base de datos, le cambie el nombre de la tabla en el query, pero sigue con el mismo error... Y como dije he importado el driver de conexión al proyecto con el que tengo problemas, lo he eliminado y vuelto a importar varias veces y sigue con lo mismo. También me pasa con otro proyecto, o sea, con el único que funciona es con el de las llamadas.

Pero es ni siquiera la conexión se está estableciendo, porque le puse un print que si ejecuta el try{} entonces diga que la conexion es exitosa, pero no sale ni eso, tampoco sale que la conexión falló (que sería el cacth)

Tampoco importa si le pongo una contraseña o usuario erroneo para conectarse a la BD, me sigue dando el mismo erro, en la misma línea, es muy raro  :-\
« Última modificación: 30 Noviembre 2011, 17:38 pm por Aikanáro Anário » En línea

Lo que faltaba en internet: http://binar10s.blogspot.com/
adastra
Endless Learner
Ex-Staff
*
Desconectado Desconectado

Mensajes: 885


http://thehackerway.com/


Ver Perfil WWW
Re: Conector de mysql no me funciona con eclipse en ubuntu
« Respuesta #8 en: 30 Noviembre 2011, 17:36 pm »

 :huh: Si que es raro... cambia de Driver a ver si depronto suena la flauta... que versión de MySQL tienes? intenta cambiar la tabla a minusculas todo, en PostgreSQL si que recuerdo tener un problema así, que no pillaba la tabla porque estaba en Mayusculas, pero vamos que ya son "palos de ciego" pero por probar, no se pierde nada...
En línea

Aikanáro Anário


Desconectado Desconectado

Mensajes: 694



Ver Perfil WWW
Re: Conector de mysql no me funciona con eclipse en ubuntu
« Respuesta #9 en: 30 Noviembre 2011, 17:42 pm »

Acabo de encontrar el error, que error más pendejo.

Es que no había puesto constructor, bueno, cuando uno no pune constructor se crea uno por defecto, pero obviamente ese constructor no hacía nada, por eso me daba el mismo error siempre.

Si te fijas:
Código
  1. public void ConexionBD() {
  2. try {
  3. Class.forName(driver); //Especifico el driver a usar
  4. ct = DriverManager.getConnection(bd,usuario,contraseña); // hago la conexion usando el objeto Connection
  5. st = ct.createStatement(); //creo el query
  6. System.out.println("Conexion exitosa");
  7. // JOptionPane.showMessageDialog(null, "Conexión Exitosa");
  8. }
  9. catch(Exception ex) {
  10. // JOptionPane.showMessageDialog(null, "Conexión Fallida");
  11. System.out.println("fallo");
  12. ex.printStackTrace();
  13. }
  14. }

En vez de crear el constructor, le puse void, o sea que por error lo que cree fue un método xD. Y no habría problemas si llamara ese método desde el main o desde la clase que lo quiero utilizar, pero como pensé que lo que tenía era un constructor, no lo estaba haciendo, y solo llamaba el método de crearSentencia. Ya está y funciona.

Gracias por la ayuda.
« Última modificación: 30 Noviembre 2011, 18:21 pm por Aikanáro Anário » En línea

Lo que faltaba en internet: http://binar10s.blogspot.com/
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ubuntu - Instalar Eclipse
Java
h0oke 7 5,230 Último mensaje 10 Abril 2010, 22:38 pm
por danielo-
Registro de usuario con mysql no me funciona ! « 1 2 »
PHP
neopuerta360 11 5,257 Último mensaje 5 Enero 2011, 15:54 pm
por neopuerta360
programacion C en eclipse ubuntu
Programación C/C++
programacion_c 1 2,345 Último mensaje 1 Mayo 2012, 03:35 am
por STANHMAL
Conexion Mysql con Vb.net sin Conector ni Dll's ??
Dudas Generales
Vaagish 0 1,534 Último mensaje 7 Diciembre 2012, 01:32 am
por Vaagish
Context-root en eclipse no funciona, pero si genero ear y despliego, si funciona
Desarrollo Web
JobFer 0 1,903 Último mensaje 26 Septiembre 2014, 10:09 am
por JobFer
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines