Antes que todo debo aclarar que hace poco empecé con JAVA y JFrame para la interfaz.
Ahora el problema es el siguiente, quiero que al presionar un botón se ejecute una consulta a la BD (MYSQL), pero siempre me aparece el mismo error:
Código:
Para esto tengo 2 clases y un JFrame Form, los cuales contienen el siguiente código:Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at prueba3.conexion.crearSentencia(conexion.java:44) at prueba3.usuario.consultaPrueba(usuario.java:25) at prueba3.boton.jButton1ActionPerformed(boton.java:68)
Clase conexion:
Código:
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; public class conexion { private Connection conn; public conexion(){ registrar(); obtenerConexion(); } private String registrar(){ try{ Class.forName("com.mysql.jdbc.Driver"); return "exito"; }catch(ClassNotFoundException e){ return "no registrado"; } } private String obtenerConexion(){ try{ conn = DriverManager.getConnection("jdbc:mysql://localhost/prueba","root",""); return "exito"; }catch(SQLException e){ return "no conectado"; } } public Statement crearSentencia(){ try{ return conn.createStatement(); }catch(SQLException e){ return null; } } }
Clase usuario:
Código:
import java.sql.ResultSet; import java.sql.SQLException; public class usuario { private conexion c; public usuario(){ c = new conexion(); } public ResultSet consultaPrueba(){ try{ ResultSet respuesta = c.crearSentencia().executeQuery("select * from usuario"); return respuesta; }catch(SQLException e){ return null; } } }
JFrame Form acción del botón:
Código:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: usuario usu = new usuario(); ResultSet rs = usu.consultaPrueba(); try{ while(rs.next()){ System.out.println(rs.getInt("id")); System.out.println(rs.getString("clave")); } }catch(SQLException e){ System.out.println(e.getMessage()); } }
¿Qué es lo que estoy haciendo mal?
Saludos y cualquier ayuda será bienvenida, gracias de antemano.