Passar conexão como parametro para JInternalFrame

2 respostas
tiago.vt

Pessoal estou fazendo um programinha a na tela principal eu faço a conexão com o banco de dados coloquei pra passar essa conexão como parametro para os outros internal frames que é tipo cadastro de cliente quando eu vo cadastra alguma coisa ele me retorna esse erro:

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.

se eu tirar o parametro do objeto pra gravar no banco e criar uma nova conexão e passa ela funciona corretamente, vou postar aqui parte do codigo:
parte do cod da janela principal:

public class GUIPrincipal extends JFrame {

	private static final long serialVersionUID = 1L;
	private JMenuBar jJMenuBar = null;
	private JMenu jMenArquiv = null;
	private JMenuItem jMenuItemSair = null;
	private JMenu jMenuCadastro = null;
	private JMenuItem jMenuItemCliente = null;
	private JMenuItem jMenuItemVendedor = null;
	private JMenu jMenuOrcamento = null;	  
	private JDesktopPane jDesktopPane = null;
	
	Conexao con = new Conexao();
	
	/**
	 * This is the default constructor
	 */
	public GUIPrincipal() {
		super();
		initialize();		
	}

	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize() {
		this.setSize(662, 298);
		this.setContentPane(getJDesktopPane());
		this.setJMenuBar(getJJMenuBar());
		this.setTitle("Orçamentos");
		this.setVisible(true);
		this.setExtendedState(this.MAXIMIZED_BOTH);
		this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
		 
					
	}

parte do cod. das outros janelas

public class GUICadCliente extends JInternalFrame {

	private JPanel jContentPane = null;	
	private Connection getConnection;

public GUICadCliente(Connection getConnection) throws SQLException, ClassNotFoundException {
		super();
		
		this.getConnection = getConnection;		
		initialize();		
	}


	private void initialize() throws SQLException, ClassNotFoundException {
		this.setSize(722, 480);
		this.setFrameIcon(new ImageIcon(getClass().getResource("/img/Clientes.png")));
		this.setClosable(true);
		this.setResizable(true);
		this.setMaximizable(true);
		this.setIconifiable(true);
		this.setTitle("Cadastro de Clientes");
		this.setContentPane(getJContentPane());
		this.setVisible(true);
		
		
	}

private JButton getJButSalvar() {
		if (jButSalvar == null) {
			
			jButSalvar = new JButton();
			jButSalvar.setIcon(new ImageIcon(getClass().getResource("/img/Salvar.png")));
			jButSalvar.setToolTipText("Salva Cadastro");
			
			jButSalvar.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					int idVen;
					
					//Conexao con = new Conexao();		
					
					TOCLiente toCLiente = new TOCLiente();					
					DAOCliente daoCliente = new DAOCliente(getConnection);					
					DAOVendedor daoVendedor = new DAOVendedor(getConnection);
					try {
						idVen = daoVendedor.pegaIdVendedor
								((String) jComboBoxVendedor.getSelectedItem());						
						
						toCLiente.setId(Integer.parseInt(jTextFieldCodCLiente.getText()));
						toCLiente.setNome(jTextFieldNomeCliente.getText());
						toCLiente.setEndereco(jTextFieldEndereco.getText());
						toCLiente.setBairro(jTextFieldBairro.getText());
						toCLiente.setCidade(jTextFieldCidade.getText());
						toCLiente.setEmail(jTextFieldEmail.getText());
						toCLiente.setTelefone(jTextTelefone.getText());
						toCLiente.setCelular(jTextCelular.getText());
						toCLiente.setObservacoes(jTextPaneObservacoes.getText());
						toCLiente.setIdVendedor(idVen);
						
						daoCliente.cadastrarCliente(toCLiente);
						
						JOptionPane.showMessageDialog(null, "Cadastro salvo com" +
								" sucesso","OK",JOptionPane.INFORMATION_MESSAGE);
						
					} catch (SQLException e1) {						
						JOptionPane.showMessageDialog(null, "Não foi possível " +
								"salvar o cadastro","ERRO",JOptionPane.ERROR_MESSAGE);
					}										
				}
			});
		}
		return jButSalvar;
	}

Faz 2 dias que estou apanhando e ate agora naum descobri o que estou fazendo de errado
Alguem por favor me da um help

2 Respostas

T

Use um connection pool ; a vantagem do connection pool é que você pede emprestada uma conexão do pool, usa-a, e depois a devolve. Procure por “connection pool”

tiago.vt

Amigo achei pouca coisa sobre connection pool vc tem algum link artigo falando ou também um exemplo.

Desde já agradeço.

Criado 5 de dezembro de 2008
Ultima resposta 5 de dez. de 2008
Respostas 2
Participantes 2