Problemas com mysql em aplicação swing

Olá pessoal,

estou com um baita problema… talvez por conta da minha inexperiência com swing.
Estou com uma aplicação que acessa um BD Mysql. Eu faço o login do BD na janela principal, onde eu abro uma conexão, faço uso das tabelas do bd e fecho a conexão apenas quando o programa é fechado. Tudo funcionando ok. O problema é que eu abro outras JInternalFrames no JDesktopPane principal. E eu quero acessar a conexão aberta no JFrame principal anterior nessa internalFrame, mas não sei como. Aliás, sei, fazendo vários getParent() até q chega na JFrame principal do programa (onde eu instanciei a Connection). Mas sei que deve haver alguma solução bem melhor.
Alguém com alguma luz??

Agradeço desde já.

para que vc vai usar a mesma conexão?
o que vai fazer que não pode abrir uma nova??

Ola,
primeiro eu acho que vc deveria criar uma classe conexão, com os métodos conectar e desconectar, assim sempre que vc precisasse fazer uma conexão seria só você instanciar está classe e utilizar os seus respectivos métodos.
visando segurança você deixaria a conexao aberta somente quando fosse fazer uma pesquisa ou inserir dados no banco.

import java.sql.*;

public class ConexaoDAO {

private static final String drv = "org.gjt.mm.mysql.Driver";
private static final String url = "jdbc:mysql://127.0.0.1:3306/db_vendas";
private Connection con;

public boolean conectar(){
    try{
        Class.forName(drv);
        con = DriverManager.getConnection(url,"root","");
        System.out.println("Conectou ao banco com sucesso!");
        return true;           
    }catch(ClassNotFoundException e){
        e.printStackTrace();
        return false;
    }catch(SQLException e){
        e.printStackTrace();
        return false;
    }
}

public boolean desconectar(){
    try{
        con.close();
        System.out.println("Desconectou com o banco!!");
        return true;
    }catch(SQLException e){           
        e.printStackTrace();
        return false;
    }
}

}

Aconselho que essa classe seja um Singleton.

abraço

Existem vários problemas na sua abordagem:

[list]Se cair o banco, a conexão se perde e nada mais funciona[/list]
[list]O acesso ao banco de dados está amarrado com sua interface gráfica[/list]
[list]Há uma dependência enorme entre as classes da sua aplicação[/list]
[list]Você está trabalhando em baixo nível, acessando diretamente o banco e manipulando diretamente a interface gráfica[/list]

Recomendo que você siga boas práticas de desenvolvimento, criando classes e uma separação mínima de camadas e abstraindo o acesso a banco e manipulação da GUI. Uma forma de fazer isso é usando Hibernate e [https://genesis.dev.java.net]genesis[/url].