atualização em banco de dados

0 respostas
cu_ringa

ai vai as Classe InterfaceBanco e Pre_Next_PessoaFisica.

eu gostaria de saber se quando eu chamo a classe InserirPessoaFisica e
passo como parametro “cb.getConnection()”, que faz a conexão com o banco de dados, ao inserir o registro no meu banco, a conexão automaticamente é atualizada, ou seja quando eu apertar nos botões b[3] (registro anterior)e b[4](proximo registro), eu ja poderia ver o registro que eu acabei de inserir ou eu tenho que fazer uma nova conexão para poder ver esses registros, lembrando que “cb.getConnection()”, faz tanto as conexão dos botoes como da função inserir.

Essas tres chamadas de classe é feita na classe InterfaceBanco

final ConexaoBanco cb = new ConexaoBanco();

b[0].addActionListener( new ActionListener(){
public void actionPerformed(ActionEvent e){ new InserirPessoaFisica(ipf, cb.getConexao());

}

}					

);

final Pre_Next_PessoaFisica pnpf = new Pre_Next_PessoaFisica(ipf, cb.getConexao());

import java.sql.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class InterfaceBanco extends JFrame{
			
	public InterfaceBanco(){
	
		super("Banco Bernardino");
				
		//gerenciador das janelas filhas
		final JDesktopPane dp = new JDesktopPane();
		getContentPane().add(dp);
		
		//cria a barra de status
		JMenuBar jmb = new JMenuBar();
		setJMenuBar(jmb);
		
		JMenu arquivo = new JMenu("Arquivo");
		arquivo.setMnemonic('A');
		
		JMenu adicionar = new JMenu("Adicionar");
		adicionar.setMnemonic('d');
		
		JMenuItem pessoa_fisica = new JMenuItem("Pessoa Fisica");
		pessoa_fisica.setMnemonic('P');
				
	  adicionar.add(pessoa_fisica);
	  jmb.add(arquivo);
	  jmb.add(adicionar);
		
		
		pessoa_fisica.addActionListener(
			new ActionListener(){
				public void actionPerformed(ActionEvent e){
					
										
					//chama a janela filha
					JInternalFrame jif = new JInternalFrame("Cadastro Pessoa Física", true, true, false, true);
					Container c = jif.getContentPane();
					
															
					//instancia o objeto ipf da classe InterfacePessoaFisica, final para ser usado na classe interna
					final InterfacePessoaFisica ipf = new InterfacePessoaFisica();
															
					//chama o método getButton da classe InterfacePessoaFisica, e inicializa o array b com os botões
					JButton b[] = ipf.getButton();
					//coloca os textos nos botões
					b[0].setLabel("inserir");
					b[1].setLabel("atualizar");
					b[2].setLabel("apagar");
					b[3].setLabel("<<");
					b[4].setLabel(">>");
					
					final ConexaoBanco cb = new ConexaoBanco(); 
					
					//ação do botão inserir					
					b[0].addActionListener(
						new ActionListener(){
							public void actionPerformed(ActionEvent e){							
								//chama a classe InserirPessoaFisica(ipf), com o parametro, que é um objeto da classe 
								//InterfacePessoaFisica(), que sera usado para obter os JTextFields da classe InterfacePessoaFisica()
								new InserirPessoaFisica(ipf, cb.getConexao());												  
							}
						}					
					);
					
					//Instancia a classe Pre_Next_PessoaFisica, com o parametro, que é um objeto da classe 
					//InterfacePessoaFisica(), que sera usado para obter os JTextFields da classe InterfacePessoaFisica()
					//final para poder ser usado na classe interna
					final Pre_Next_PessoaFisica pnpf = new Pre_Next_PessoaFisica(ipf, cb.getConexao());
					
					b[3].addActionListener(
						new ActionListener(){
							public void actionPerformed(ActionEvent e){							
								pnpf.setPreRegistro();
							}
						}					
					);					
					
					b[4].addActionListener(
						new ActionListener(){
							public void actionPerformed(ActionEvent e){							
								//chama o metodo setNextRegistro(), que vai mostrando de, um em um, os registros da tabela
								pnpf.setNextRegistro();																
							}
						}					
					);					
					
					jif.setSize(360, 160);
					jif.setOpaque(true);
					dp.add(jif);
					c.add(ipf, BorderLayout.CENTER);
					jif.show();					
				}
			}		
		);
		
		
		setSize(550, 550);
		show();
		
	}
			
	public static void main(String args[]){
		
		InterfaceBanco ib =	new InterfaceBanco();
		
		ib.addWindowListener(
			new WindowAdapter(){
			  public void windowClosing(WindowEvent we){
			  	System.exit(0);
				}			
			}
		);
	}
	
} 





import java.sql.*;
import javax.swing.*;

public class Pre_Next_PessoaFisica{
	
	private Connection connection, con;
	private ResultSet result;
	private InterfacePessoaFisica ipf;
	private Statement statement;
	private JTextField jtf[];
	boolean registro, r = true;	  	  
	
	public Pre_Next_PessoaFisica(InterfacePessoaFisica ipf, Connection connection){
		
		this.ipf = ipf;
		//obtem os JTextFields da classe InterfacePessoaFisica
	  jtf = ipf.getField();
	  this.connection = connection;
	  	  	  
	  getTabela();
	  
	}
		
	private void getTabela(){
		  
		
	  	  	  
	  try{
	  		  		  	
	  	String query = "SELECT nome, cpf, telefone, endereco FROM PessoaFisica";
	  	//retorna objeto para a consulta com o banco de dados
	  	statement = connection.createStatement(result.TYPE_SCROLL_SENSITIVE, result.CONCUR_UPDATABLE);
	  	//retorna uma tabela virtual.
	  	result = statement.executeQuery(query); 
	    //coloca o indice registro no primeiro registro
	    registro = result.next();
	    //se a tabela tivar registro chama o matodo mostrarTabela()
	    if(registro)
	     	mostrarTabela();
	    
	  }
	  catch(SQLException e){
	  	JOptionPane.showMessageDialog(null, "Erro de conexão", "Erro de conexão", JOptionPane.ERROR_MESSAGE );
	  }
	
	}
	
	public void setNextRegistro() {		
		
		
		try{
			
			//pega o proximo registro da tabela				
			boolean registro = result.next();
		
			//se tiver registro, chama o metodo mostrarTabela(), senão mostra a mensagem e fecha a consulta
			//com obanco de dados sai do metodo
			if(registro)
				mostrarTabela();
	 		else{
	    	JOptionPane.showMessageDialog(null, "Não há registro", "Não há registro", JOptionPane.ERROR_MESSAGE );
	    	result.last();	    
	    	return;
	  	}
	  }
	  catch(SQLException sqle){
	  	
	  }	  
	}
	
	public void setPreRegistro() {
	  
	  try{
	  	 	 
  		boolean registro = result.previous();
     	
  		if(registro)
  		  mostrarTabela();	
			else{
	    	JOptionPane.showMessageDialog(null, "Não há registro", "Não há registro", JOptionPane.ERROR_MESSAGE );	    
	    	result.first();
	    	return;	  
	  	}
	  }
	  catch(SQLException s){
	  	System.out.println(s.initCause(s.getCause()));
	  }
	}
		
	private void mostrarTabela() throws SQLException {
		//obtem os metadados da tabela	
		ResultSetMetaData rsmd = result.getMetaData();
		
		//obtem os dados das colunas do registro atual e coloca no frame interno		
		for(int i = 1; i <= rsmd.getColumnCount(); i++){
	  	switch(i){
	  	  	  	  	
	  	 	case 1:
	  	  	jtf[0].setText(result.getString(i));
	  	  	break;
	  	  	
	  	  case 2:
	  	  	jtf[1].setText(result.getString(i));
	  	  	break;
	  	  	
	  	  case 3:
	  	  	jtf[2].setText(result.getString(i));
	  	  	break;
	  	  	
	  	  case 4:
	  	  	jtf[3].setText(result.getString(i));
	  	  	break;	  	  	
	  	  }	  	
	  	}	
	}
		
}
Criado 22 de novembro de 2003
Respostas 0
Participantes 1