Tabela e conexÃo com o postgre! help!

4 respostas
D

Oi pessoal,

To com uma dúvida aqui.
Criei um programa estudando aqui e consegui fazê-lo conectar com o banco.
Só que após add um “aluno” ele não está listando na tabela da tela, alguém pode me ajudar?
Segue abaixo o código:

package Visao;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.Insets;
import java.sql.*;

import javax.swing.*;
import javax.swing.table.DefaultTableModel;

import Modelo.DaoAluno;

import Controle.ControleTelaAluno;

public class TelaAluno {

	
	private JFrame tela;
	private JLabel lblMat,lblNome,lblTel,lblData;
	private static JTextField txtMat,txtNome,txtTel,txtData;
	private JTable tabela;
	private JButton btnCadastrar,btnAlterar,btnExcluir,btnConsultar,btnSair;	
	private JScrollPane scrolTabela;
    private JPanel painelPrincipal,painelBotoes;
    private UIManager.LookAndFeelInfo visual[] = UIManager.getInstalledLookAndFeels();
    
    
    
    public TelaAluno(){
    	
    	
    	try{
    		UIManager.setLookAndFeel(visual[2].getClassName());
    		SwingUtilities.updateComponentTreeUI(tela);
    	}catch(Exception e){
    		
    	}
    	
    	
    	tela = new JFrame("Cadastro de aluno");
    	lblMat = new JLabel("Matrícula:");
    	lblNome = new JLabel("Nome:");
    	lblTel = new JLabel("Telefone:");
    	lblData = new JLabel("Data de nascimento:");
    	txtMat = new JTextField(10);
    	txtNome = new JTextField(40);
    	txtTel = new JTextField(15);
    	txtData = new JTextField(10);
    	btnCadastrar = new JButton("Cadastrar");
    	btnAlterar = new JButton("Alterar");
    	btnExcluir = new JButton("Excluir");
    	btnConsultar = new JButton("Consultar");
    	btnSair = new JButton("Sair");
    	painelPrincipal = new JPanel();
    	painelBotoes = new JPanel();
    	painelPrincipal.setLayout(new GridBagLayout());
    	
    	
    	painelBotoes.setLayout(new GridLayout(1,5));
    	painelBotoes.add(btnCadastrar);
    	painelBotoes.add(btnAlterar);
    	painelBotoes.add(btnExcluir);
    	painelBotoes.add(btnConsultar);
    	painelBotoes.add(btnSair);
    	
    	//    	Criaçao da tabela
    	String titulo[] = {"Matricula","Nome","Telefone","Data"};
    	
    	tabela = new JTable(new DefaultTableModel(null,titulo));
    	scrolTabela = new JScrollPane(tabela);
    	
    	
    	
    	
    	tela.getContentPane().add(painelPrincipal);
    	
    	
    	
    	
    	
    	
    	//GRidBagConstraints ancora para definir a posiçao dos elementos dentro do GRidBagLayout
    	GridBagConstraints c = new GridBagConstraints();
    	c.insets = new Insets(5,0,5,5);
    	c.anchor = GridBagConstraints.NORTHWEST;
    	c.gridx =0;
    	c.gridy =0;
    	painelPrincipal.add(lblMat,c);
    	c.gridx =1;
    	c.gridy =0;
    	painelPrincipal.add(txtMat,c);
    	c.gridx =0;
    	c.gridy =1;
    	painelPrincipal.add(lblNome,c);
    	c.gridx =1;
    	c.gridy =1;
    	painelPrincipal.add(txtNome,c);
    	c.gridx =0;
    	c.gridy =2;
    	painelPrincipal.add(lblTel,c);
    	c.gridx =1;
    	c.gridy =2;
    	painelPrincipal.add(txtTel,c);
    	c.gridx =0;
    	c.gridy =3;
    	painelPrincipal.add(lblData,c);
    	c.gridx =1;
    	c.gridy =3;
    	painelPrincipal.add(txtData,c);
    	c.gridx =0;
    	c.gridy =4;
    	c.gridwidth=2;//2 colunas agrupadas
    	c.anchor=GridBagConstraints.CENTER;
    	painelPrincipal.add(scrolTabela,c);    	
    	c.gridx =0;
    	c.gridy =5;
    	painelPrincipal.add(painelBotoes,c);
    	tela.setSize(490,620);
    	tela.setVisible(true);    	
    	tela.setResizable(false);
    	
		
		
		//ouvintes
    	Controle.ControleTelaAluno controleAluno = new ControleTelaAluno(tela);
    	btnSair.addActionListener(controleAluno);  	
    	btnCadastrar.addActionListener(controleAluno);  
    	btnExcluir.addActionListener(controleAluno);  
    	btnConsultar.addActionListener(controleAluno);  
    	btnAlterar.addActionListener(controleAluno);  
    	
    	
    }
    
    public static void habilitarBotoes(){
    	txtNome.setEnabled(true);
    	txtMat.setEnabled(true);
    	txtTel.setEnabled(true);
    	txtData.setEnabled(true);
    }
    
   

}
--------------------------------------------------------------

package Modelo;

import java.sql.*;

import javax.swing.JOptionPane;

public class DaoAluno {
	

	private static Connection c;
	//Classe para fazer a conexão com banco de dados	
	private static PreparedStatement ps;
	//Classe para gerar e executar o SQL	
	private static ResultSet r;
	//Classe para consultar o banco;
	private Statement stmt;

	//construtor
	public DaoAluno() {		
		try{
			//1ºPasso -  carregar o drive do Banco de Dados
			// utilizando o método estático .forName() da classe Class.
			Class.forName("org.postgresql.Driver");			
			c = DriverManager.getConnection("jdbc:postgresql:bancoProjeto", "postgres", "postgres");			
			ps = null;
			r = null;
		}catch(Exception e){
			e.printStackTrace();
		}		
	}
	
	
	public void cadastrar(Aluno a){
		try{
			
			String mat,nome,tel,data;
			mat=a.getMatricula();
			nome=a.getNome();
			tel=a.getTel();
			data=a.getDataNasc();
			
			String sql = "insert into aluno values (?,?,?,?)";
			ps = c.prepareStatement(sql);
			//ps = c.prepareStatement("insert into aluno values (?,?,?,?)");
															//mat,nome,tel,dataNasc
															// 1    2   3     4 
			ps.setString(1,a.getMatricula());
			ps.setString(2,a.getNome());			
			ps.setString(3,a.getTel());
			ps.setString(4,a.getDataNasc());
			
			//Executar o sql
			ps.executeUpdate();
			
			
		}catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	public void excluir(Aluno a){
		try{
			String mat=a.getMatricula();
			ps = c.prepareStatement("delete from aluno where matricula=?");
			ps.setString(1,a.getMatricula());
			ps.executeUpdate();
			finalize();
		}catch(Exception e){
			
		}		
	}
	
	public void alterar(Aluno a){
		try {
			String mat,nome,tel,data;
			mat=a.getMatricula();
			nome=a.getNome();
			tel=a.getTel();
			data=a.getDataNasc();
			
			String sql = "update aluno set nome=?, tel=? ,datanasc=? where matricula =?";
			ps = c.prepareStatement(sql);
			ps.setString(1,nome);
			ps.setString(2,tel);
			ps.setString(3,data);
			ps.setString(4,mat);			
			ps.execute();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}		
	}
	
	public Aluno consultar(Aluno a){
		
		try{
			ps = c.prepareStatement("select * from aluno where matricula=?");
			ps.setString(1,a.getMatricula());
			r = ps.executeQuery();
			
			if(r.next()){
				a.setNome(r.getString("nome"));
				a.setTel(r.getString("tel"));
				a.setDataNasc(r.getString("dataNasc"));
				return a;
			}else{
				return null;
			}
			
		}catch(Exception e){
			return null;		
		}
		
		
	}
		
	
	public void finalize(){
			// Metodo automatico para fechamento de pendencias
			try{
				ps.close();
				c.close();
			}catch (Exception e) {
			
			}
		
	}	
	
}

----------------------------------------------------------------

package Modelo;

public class Aluno {

		private String matricula;
		private String nome;
		private String tel;
		private String dataNasc;
		
		public Aluno(){
			
		}
		
		public void setMatricula(String mat){
			matricula = mat;		
		}
		public void setNome(String nome){
			this.nome = nome;		
		}
		public void setTel(String tel){
			this.tel = tel;		
		}
		public void setDataNasc(String dataNasc){
			this.dataNasc = dataNasc;		
		}
		
		public String getMatricula(){
			return matricula;
		}
		
		public String getNome(){
			return nome;
		}
		
		public String getTel(){
			return tel;
		}
		
		public String getDataNasc(){
			return dataNasc;
		}
		
		
		
		
		
		
	
}
-------------------------------------------------------------------

4 Respostas

R

Senhorita, para isso vc terá que buscar os dados para sua tabela, sugira vc utilizar um DefaultTableModel para “guardar” os dados
da uma pesquisa aki no forum que já respondi alguns tópicos sobre o assunto.

D

Pow migo, desculpe mais não consegui entender.
Fiz uma pesquiza aki, mais não consegui aplicar isso.
Poderia me da um exemplo, baseado no código acima?

R

Veja esse link
http://www.portaljava.com.br/forum/posts/list/43775.page#161972

D

Obrigado!

Criado 16 de abril de 2008
Ultima resposta 3 de mai. de 2008
Respostas 4
Participantes 2