Eu tenho uma tabela no postgres chamada funcionario com nome, codigo(serial, primary key->cod_pk),login(unique key->log_uk),senha e data de nascimento(dtnasc), e tenho o codigo em java com telas swing no eclipse, eu so tenho o campo de inserçao de nome e queria inserir os outros campos no codigo em todas as telas (Consulta,cadastro e remoçao) mas fica dando erro, alem do mais, no frame de consulta queria inserir um botão de "refresh" pra não ter que ficar tendo que rodar o codigo toda vez
Os codigos:
package br.com.jdbc;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class FrmAltDel extends JFrame implements ActionListener {
private Funcionario funcionario;
private JButton btnAlterar = new JButton("Alterar"), btnExcluir = new JButton("Excluir");
private JTextField nome = new JTextField();
private JTextField dtnasc = new JTextField();
public FrmAltDel() {
getContentPane().setLayout(new GridLayout(2, 2));
getContentPane().add(new JLabel("Nome:"));
getContentPane().add(nome);
getContentPane().add(new JLabel("Data de Nascimento:"));
getContentPane().add(dtnasc);
getContentPane().add(btnAlterar);
getContentPane().add(btnExcluir);
btnAlterar.addActionListener(this);
btnExcluir.addActionListener(this);
setSize(400, 400);
setTitle("Alterar/Deletar Funcionario");
}
public Funcionario getFuncionario() {
return funcionario;
}
public void setFuncionario(Funcionario funcionario) {
this.funcionario = funcionario;
nome.setText(funcionario.getNome());
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String driver = "org.postgresql.Driver";
// URL de acesso ao postgres
// String url = "jdbc:postgresql://172.16.2.35:5432/postgres";
String url = "jdbc:postgresql://localhost:5432/postgres";
// usuário do banco
String user = "postgres";
// senha do usuário do banco
String pass = "postgres";
try {
// Carregando o driver
Class.forName(driver);
// Estabelece a conexao
Connection con = DriverManager.getConnection(url, user, pass);
System.out.println(con.isClosed());
PreparedStatement ps= null;
if (e.getSource() == btnAlterar) {
String sql = "update funcionario set nome=? where codigo=? ";
ps = con.prepareStatement(sql);
ps.setString(1, nome.getText());
ps.setInt(2, funcionario.getCodigo());
} else {
String sql = "delete from funcionario where codigo=?";
ps = con.prepareStatement(sql);
ps.setInt(1, funcionario.getCodigo());
}
ps.executeUpdate();
ps.close();
con.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
package br.com.jdbc;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.List;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class FrmCadastrar extends JFrame implements ActionListener {
private JTextField jtfNome = new JTextField();
private JTextField jtfDtnasc = new JTextField();
private JButton btnCadastrar = new JButton("cadastrar");
public FrmCadastrar() {
getContentPane().setLayout(new GridLayout(3,2));
getContentPane().add(new JLabel("Nome:"));
getContentPane().add(jtfNome);
getContentPane().add(new JLabel("Data de Nascimento:"));
getContentPane().add(jtfDtnasc);
getContentPane().add(btnCadastrar);
setTitle("Cadastrar Funcionario");
setSize(400, 400);
btnCadastrar.addActionListener(this);
}
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
// Qual banco que quer acessar
String driver = "org.postgresql.Driver";
// URL de acesso ao postgres
// String url = "jdbc:postgresql://172.16.2.35:5432/postgres";
String url = "jdbc:postgresql://localhost:5432/postgres";
// usuário do banco
String user = "postgres";
// senha do usuário do banco
String pass = "postgres";
try {
// Carregando o driver
Class.forName(driver);
// Estabelece a conexao
Connection con = DriverManager.getConnection(url, user, pass);
System.out.println(con.isClosed());
// Comando de insercao na tabela produto
String sql="insert into funcionario (nome,dtnasc) values (?,?) ";
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1, jtfNome.getText());
ps.executeUpdate();
ps.setString(2, jtfDtnasc.getText());
ps.executeUpdate();
ps.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
package br.com.jdbc;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
public class FrmConsulta extends JFrame implements ActionListener{
private JList listFuncionario;
private JButton btnNovo = new JButton("Novo");
private JButton btnSelecionar = new JButton("Selecionar");
private JButton btnRefresh = new JButton("Atualizar");
public FrmConsulta() {
getContentPane().setLayout(new GridLayout(2,1));
getContentPane().add(btnNovo);
getContentPane().add(btnSelecionar);
//getContentPane().add(btnRefresh);
btnNovo.addActionListener(this);
btnSelecionar.addActionListener(this);
btnRefresh.addActionListener(this);
setTitle("Consultar Funcionario");
setSize(400, 400);
}
public void carregar(List<Funcionario> list) {
listFuncionario = new JList((Vector<Funcionario>)list);
getContentPane().add(new JLabel("Produtos:"));
getContentPane().add(listFuncionario);
}
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
if (arg0.getSource() == btnNovo) {
FrmCadastrar frmCad = new FrmCadastrar();
frmCad.setVisible(true);
} else {
Funcionario fun = (Funcionario)listFuncionario.getSelectedValue();
FrmAltDel frmAltDel = new FrmAltDel();
frmAltDel.setFuncionario(fun);
frmAltDel.setVisible(true);
}
}
}
package br.com.jdbc;
import java.util.Date;
//nao coloquei todos os getters e setters, mas esse nao é o problema primordial
public class Funcionario
{
private Date dtnasc;
private int codigo;
private String nome;
public Date getDtnasc() {
return dtnasc;
}
public void setDtnasc(Date dtnasc) {
this.dtnasc = dtnasc;
}
public int getCodigo() {
return codigo;
}
public void setCodigo(int codigo) {
this.codigo = codigo;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String toString() {
return nome + " " + dtnasc;
}
}
//O nome dessa classe é jdbc1
package br.com.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.List;
import java.util.Vector;
/**
- consult
select * from public.cliente where codigo=2
Exclusao
delete from public.cliente
delete from public.cliente where codigo=2
Isercão
insert into public.cliente (nome, fone) values (‘george’, ‘112469D4’)
Alteração
update public.cliente set nome=‘George’, fone=‘112469D4’ where codigo = 3
*/
public class jdbc1
{
public static void main(String[] args) {
// TODO Auto-generated method stub
// Qual banco que quer acessar
String driver = “org.postgresql.Driver”;
// URL de acesso ao postgres
//String url = “jdbc:postgresql://172.16.2.35:5432/postgres”;
String url = “jdbc:postgresql://localhost:5432/postgres”;
// usuário do banco
String user = “postgres”;
// senha do usuário do banco
String pass = “postgres”;
try {
// Carregando o driver
Class.forName(driver);
// Estabelece a conexao
Connection con = DriverManager.getConnection(url, user, pass);
System.out.println(con.isClosed());
// Comando de insercao na tabela Funcionario
String sql="select * from funcionario order by nome ";
// Criando uma sentenca de execucao de comandos SQL
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(sql);
List<Funcionario> list = new Vector<Funcionario>();
while (rs.next()) {
Funcionario fun = new Funcionario();
fun.setDtnasc(rs.getDate(“dtnasc”));
fun.setNome(rs.getString(“nome”));
list.add(fun);
}
FrmConsulta frmCons = new FrmConsulta();
frmCons.carregar(list);
frmCons.setVisible(true);
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
//o nome dessa classe é ExConsulta, mas acho que ela é só pra referencias, não entra no codigo
package br.com.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class ExConsulta {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
// Qual banco que quer acessar
String driver = "org.postgresql.Driver";
// URL de acesso ao postgres
String url = "jdbc:postgresql://localhost:5432/postgres";
// usuário do banco
String user = "postgres";
// senha do usuário do banco
String pass = "postgres";
try {
// Carregando o driver
Class.forName(driver);
// Estabelece a conexao
Connection con = DriverManager.getConnection(url, user, pass);
System.out.println(con.isClosed());
// Comando de selecao
//String insert="select codigo, nome from produto";
String sql="select * from funcionario";
// Criando uma sentenca de execucao de comandos SQL
Statement stmt = con.createStatement();
// Comando para consultar
ResultSet rs = stmt.executeQuery(sql);
// Percorrendo o resultado
while (rs.next()) {
// Obtendo a coluna Codigo
System.out.print("Codigo: " + rs.getInt("codigo"));
// Obtendo a coluna Nome
System.out.println(" Nome: " + rs.getString("nome"));
}
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}