Java - Objeto Connection GLOBAL

 
Vista:

Objeto Connection GLOBAL

Publicado por Jesus (1 intervención) el 06/04/2008 21:10:06
Saludos.

Estoy dando mis primeros pasos en Java y me gustaria que me aclararan o ayudaran en esta cuestion en concreto.

Tengo un JFrame diseñado con elementos Swing (jtable, jtexfield, jbutton etc), y me gustaria incluir un objeto Connection para una conexion a una base de datos MySql pero que tenga un alcance global, es decir que este accesible desde cualquier boton del Jframe de forma que no tenga que declararlo nuevamente. En resumen abrirlo al inicio y cerrarlo por ejemplo cuando pulse el boton de Cerrar.

Ahora mismo lo tengo declarado en el MAIN del proyecto y de echo conecta perfectamente, pero cuando intento cerrarlo con la instruccion close() desde el evento cmdCerrarMouseClicked() del jbutton me da error.

public static void main(String args[]) throws Exception {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
// abre el driver Mysql

Connection GLB_db = null;

try
{
Class.forName("com.mysql.jdbc.Driver").newInstance();
GLB_db = DriverManager.getConnection(url,login,password);

if (GLB_db != null)
{
System.out.println("Conexión a base de datos "+url+" ... Ok");

}
}
catch (InstantiationException ex) {
Logger.getLogger(frmPolizas.class.getName()).log(Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
Logger.getLogger(frmPolizas.class.getName()).log(Level.SEVERE, null, ex);
} catch(SQLException ex)
{
System.out.println(ex);
}
catch(ClassNotFoundException ex)
{
System.out.println(ex);
}


// resto de instrucciones
new frmPantalla().setVisible(true);

}
});
}


// ESTE ES EL EVENTO DEL JBUTTON DONDE QUIERO CERRAR LA CONEXION.

private void cmdCerrarMouseClicked(java.awt.event.MouseEvent evt) {

// cierra el objeto coneccion de la base de datos
GLB_db.close(); // ME MARCA UN ERROR

// cierra el programa completo
System.exit(0);

}

¿Alguna sugerencia?. Gracias anticipadas
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Objeto Connection GLOBAL

Publicado por mario (58 intervenciones) el 07/04/2008 16:03:15
Mira no es algo adecuado lo que estas intentando realizar:

1) no debes mezclar el codigo de la interfaz de usuario con la logica de negocios y tampoco con el acceso a la base de datos.

Lo apropiado es que para la interfaz de usuario utilices el patron Observer

Para la logica de negocios uses Fachadas (Facade) y Business Delegate usando POJOS

y para el acceso a la base de datos uses el patrón DAO, documentate sobre esos patrones y veras que el sistema tomará otra forma........

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar