Ola pessoal, fiquei o sabado inteiro tentando resolver esse problema “DUVIDA” e está funcionando , porem acho que essa não é a melhor forma (obs: fiz o metodo incluir pessoa dentro da classe pessoa está correto?) de ser feito por isso queria que voces estruturase essas classes da melhor forma possivel.
1 - CLASSE que fabrica Conexoes
package ConexaoJDBC;
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.SQLException;
import javax.swing.JOptionPane;
public final class Conexao {
private static String url = "jdbc:mysql://localhost:3306/teste";
private static String usuario = "root";
private static String senha = "root";
private static String driver = "com.mysql.jdbc.Driver";
public static Connection abreConexao() {
Connection conn = null;
try {
Class.forName(driver);
conn = DriverManager.getConnection(url,usuario,senha);
return conn;
} catch (SQLException e) {
JOptionPane.showMessageDialog(null,"Erro ao conectar ao servidor");
return null;
}
catch (Exception e) {
JOptionPane.showMessageDialog(null,"Erro ao conectar ao servidor");
return null;
}
}
public static void fechaConexao(Connection conn){
try {
if (conn != null) {
conn.close();
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null,"Não foi possivel fechar a conexão");
}
}
}
2 - CLASSE de pessoa
package Pessoa;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;
import javax.swing.JOptionPane;
import ConexaoJDBC.Conexao;
public class Pessoa {
private int codigo;
private String nome;
private String rg;
private String cpf;
private String dataNascimento;
private String sexo;
public Pessoa(int codigo, String nome , String rg , String cpf , String dataNascimento, String sexo){
setCodigo(codigo);
setNome(nome);
setRg(rg);
setCpf(cpf);
setDataNascimento(dataNascimento);
setSexo(sexo);
}
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 getRg() {
return rg;
}
public void setRg(String rg) {
this.rg = rg;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public String getDataNascimento() {
return dataNascimento;
}
public void setDataNascimento(String dataNascimento) {
this.dataNascimento = dataNascimento;
}
public String getSexo() {
return sexo;
}
public void setSexo(String sexo) {
this.sexo = sexo;
}
public void inclui() {
Connection conn = Conexao.abreConexao();
Statement comando;
String SQL;
SQL = "INSERT INTO pessoa (codigo , nome , rg , cpf ,datanascimento, sexo)" ;
SQL += "VALUES ('" +getCodigo()+"' , '"+getNome()+"' , '"+getRg()+"' , '"+getCpf()+"' , '"+getDataNascimento()+"' , '"+getSexo()+"' )";
try {
comando = conn.createStatement();
comando.executeUpdate(SQL);
} catch (SQLException e1) {
e1.printStackTrace();
JOptionPane.showMessageDialog(null,"Erro ao Gravar o cliente");
}
Conexao.fechaConexao(conn);
}
}
3 - CLASSE do swing(“interface com o usuario”)
package Grafico;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.*;
import javax.swing.text.MaskFormatter;
import Pessoa.Pessoa;
public class Cadastro implements ActionListener {
private String [] sexo = {"Masculino","Feminino"};
private JComboBox cmbSexo;
private JLabel lblCodigo,lblNome,lblDataNascimento,lblRg,lblCpf,lblSexo;
private JTextField txtCodigo,txtNome;
private MaskFormatter mskDataNascimento, mskRg, mskCpf;
private JFormattedTextField txtDataNascimento,txtRg,txtCpf;
private JButton btnNovo,btnAlterar,btnApagar,btnCancelar,btnGravar,btnPrimeiro,btnAnterior,btnProximo,btnUltimo;
private JPanel pnlPrincipal;
private JFrame frmPrincipal;
public void montaFormulario(){
lblCodigo = new JLabel("Código:");
lblNome = new JLabel("Nome:");
lblDataNascimento = new JLabel("Data Nasc:");
lblRg = new JLabel("Rg:");
lblCpf = new JLabel("Cpf:");
lblSexo = new JLabel("Sexo:");
lblCodigo.setBounds(50, 20, 80, 20);
lblNome.setBounds(50, 60, 80, 20);
lblDataNascimento.setBounds(50, 100, 80, 20);
lblRg.setBounds(50, 140, 80, 20);
lblCpf.setBounds(50, 180, 80, 20);
lblSexo.setBounds(50, 220, 80, 20);
try{
mskDataNascimento = new MaskFormatter("##/##/####");
mskRg = new MaskFormatter("#####-###");
mskCpf = new MaskFormatter("#########-##");
mskDataNascimento.setPlaceholderCharacter('_');
mskRg.setPlaceholderCharacter('_');
mskCpf.setPlaceholderCharacter('_');
}
catch(ParseException excp){};
txtCodigo = new JTextField(10);
txtNome = new JTextField(50);
txtDataNascimento = new JFormattedTextField(mskDataNascimento);
txtRg = new JFormattedTextField(mskRg);
txtCpf = new JFormattedTextField(mskCpf);
cmbSexo = new JComboBox(sexo);
txtCodigo.setBounds(120, 20, 100, 20);
txtNome.setBounds(120, 60, 400, 20);
txtDataNascimento.setBounds(120, 100, 100, 20);
txtRg.setBounds(120, 140, 100, 20);
txtCpf.setBounds(120, 180, 100, 20);
cmbSexo.setBounds(120, 220, 100, 20);
btnNovo = new JButton("Novo");
btnAlterar = new JButton("Alterar");
btnApagar = new JButton("Apagar");
btnCancelar = new JButton("Cancelar");
btnGravar = new JButton("Gravar");
btnPrimeiro = new JButton("<<");
btnAnterior = new JButton("<");
btnProximo = new JButton(">");
btnUltimo = new JButton(">>");
btnNovo.setBounds(5,265,85,30);
btnAlterar.setBounds(90,265,85,30);
btnApagar.setBounds(175,265,85,30);
btnCancelar.setBounds(260,265,85,30);
btnGravar.setBounds(345,265,85,30);
btnPrimeiro.setBounds(437,265,50,30);
btnAnterior.setBounds(487,265,50,30);
btnProximo.setBounds(537,265,50,30);
btnUltimo.setBounds(587,265,50,30);
btnNovo.addActionListener(this);
btnAlterar.addActionListener(this);
btnApagar.addActionListener(this);
btnCancelar.addActionListener(this);
btnGravar.addActionListener(this);
btnPrimeiro.addActionListener(this);
btnAnterior.addActionListener(this);
btnProximo.addActionListener(this);
btnUltimo.addActionListener(this);
pnlPrincipal = new JPanel();
pnlPrincipal.setLayout(null);
pnlPrincipal.add(lblCodigo);
pnlPrincipal.add(txtCodigo);
pnlPrincipal.add(lblNome);
pnlPrincipal.add(txtNome);
pnlPrincipal.add(lblRg);
pnlPrincipal.add(txtRg);
pnlPrincipal.add(lblCpf);
pnlPrincipal.add(txtCpf);
pnlPrincipal.add(lblDataNascimento);
pnlPrincipal.add(txtDataNascimento);
pnlPrincipal.add(lblSexo);
pnlPrincipal.add(cmbSexo);
pnlPrincipal.add(btnNovo);
pnlPrincipal.add(btnAlterar);
pnlPrincipal.add(btnApagar);
pnlPrincipal.add(btnCancelar);
pnlPrincipal.add(btnGravar);
pnlPrincipal.add(btnPrimeiro);
pnlPrincipal.add(btnAnterior);
pnlPrincipal.add(btnProximo);
pnlPrincipal.add(btnUltimo);
frmPrincipal = new JFrame("Cadastro de Pessoa");
frmPrincipal.add(pnlPrincipal);
frmPrincipal.setSize(650, 350);
frmPrincipal.setResizable(false);
frmPrincipal.setVisible(true);
frmPrincipal.setLocationRelativeTo(null);
frmPrincipal.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == btnNovo){
}
if (e.getSource() == btnAlterar){
}
if (e.getSource() == btnApagar){
}
if (e.getSource() == btnCancelar){
}
if (e.getSource() == btnGravar){
Pessoa pessoa = new Pessoa(Integer.parseInt(txtCodigo.getText()) , txtNome.getText() , txtRg.getText(), txtCpf.getText() , txtDataNascimento.getText() , cmbSexo.getToolTipText());
pessoa.inclui();
JOptionPane.showMessageDialog(null, "Cliente Gravado com sucesso");
}
if (e.getSource() == btnPrimeiro){
}
if (e.getSource() == btnAnterior){
}
if (e.getSource() == btnProximo){
}
if (e.getSource() == btnUltimo){
}
}
}