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;
}
}
-------------------------------------------------------------------