Ver Mensaje Individual
  #10 (permalink)  
Antiguo 17/09/2014, 06:17
Avatar de Profesor_Falken
Profesor_Falken
 
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 9 meses
Puntos: 182
Respuesta: Error nullpointer al hacer una consulta SQL (ORACLE)

Buenas,

Normalmente en aplicaciones de escritorio efectivamente se abre una conexion al arrancar el programa y no se cierra hasta que cerremos el programa.

Para hacer esto sin tocar mucho tu codigo, te bastaria con meter el codigo de conexion() dentro del constructor de ConextionDB y crear un metodo desconectar()

Código Java:
Ver original
  1. public class ConexionDB {
  2.     String user;
  3.     String pass;
  4.     String url;
  5.     static Connection conex;
  6.     static Statement stm;
  7.     static ResultSet rs;
  8.  
  9.     public ConexionDB() {
  10.         user = "alumno";
  11.         pass = "alumno";
  12.         url = "jdbc:oracle:thin:@PCVIRTUAL:1521:BASE";
  13.         conex = null;
  14.         stm = null;
  15.  
  16.  try {
  17.             Class.forName("oracle.jdbc.OracleDriver").newInstance();
  18.             conex = DriverManager.getConnection(url, user, pass);
  19.             JOptionPane.showMessageDialog(null, "Conexion realizada con éxito");
  20.         } catch (Exception e) {
  21.             JOptionPane.showMessageDialog(null, "Conexion fallida");
  22.             JOptionPane.showInputDialog(e, null);
  23.         }
  24.     }
  25.  
  26.     public void desconectar() {
  27.        if (!conex.isClosed()) {
  28.          conex.close();
  29. }
  30.     }
  31. [...]


Despues puedes utilizar este desconectar con un evento windowsclosing. Podrias ponerlo en tu main, justo antes de hacer el setVisible:

Código Java:
Ver original
  1. frame.addWindowListener(new WindowAdapter() {
  2.  
  3. @Override
  4.  
  5. public void windowClosing(WindowEvent e) {
  6.     conex.desconectar();
  7.     System.exit(0);
  8.  
  9. }
  10.  
  11.   });

Un saludo