Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package controller; import java.awt.HeadlessException; import java.util.List; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; import javax.persistence.Query; import javax.swing.JOptionPane; import model.Contato; import model.InterfaceContato; import model.PessoaFisica; import org.hibernate.HibernateException; import org.hibernate.PropertyValueException; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import util.HibernateUtil; /** * * @author thales */ public class PessoaFisicaController extends ContatoController { private PessoaFisica pessoa; public PessoaFisicaController() { pessoa = new PessoaFisica(); } @Override public void salvarHerdeiro() { SessionFactory sf = HibernateUtil.getSessionFactory(); Session s = sf.openSession(); Transaction tx = s.beginTransaction(); try { s.save(this.pessoa); tx.commit(); JOptionPane.showMessageDialog(null, "Dado Inserido com Sucesso!"); } catch (HeadlessException e) { JOptionPane.showMessageDialog(null, "Erro ao inserir os dados: " + e.getMessage()); tx.rollback(); } catch (PropertyValueException e) { JOptionPane.showMessageDialog(null, "Erro ao inserir os dados, verifique se algum campo est nulo.\n" + e.getMessage()); tx.rollback(); } s.close(); } @Override public void atualizarHerdeiro() { SessionFactory sf = HibernateUtil.getSessionFactory(); Session s = sf.openSession(); Transaction tx = s.beginTransaction(); try { s.merge(this.pessoa); tx.commit(); JOptionPane.showMessageDialog(null, "Dado Atualizado com Sucesso!"); } catch (HeadlessException e) { JOptionPane.showMessageDialog(null, "Erro ao atualizar os dados: " + e.getMessage()); tx.rollback(); } s.close(); } @Override public void deletarHerdeiro() { SessionFactory sf = HibernateUtil.getSessionFactory(); Session s = sf.openSession(); Transaction tx = s.beginTransaction(); try { s.delete(this.pessoa); tx.commit(); JOptionPane.showMessageDialog(null, "Dado Deletado com Sucesso!"); } catch (HeadlessException e) { JOptionPane.showMessageDialog(null, "Erro ao deletar os dados: " + e.getMessage()); tx.rollback(); } s.close(); } @Override public InterfaceContato buscarHerdeiro(int id) { try { EntityManagerFactory factory = Persistence.createEntityManagerFactory("sistemarf-hPU"); EntityManager em = factory.createEntityManager(); Query q = em.createNamedQuery("PessoaFisica.findByIdPessoaFisica"); q.setParameter("idPessoaFisica", id); PessoaFisica pf = (PessoaFisica) q.getSingleResult(); em.close(); factory.close(); return pf; } catch (Exception e) { JOptionPane.showMessageDialog(null, "Erro ao buscar Pessoa Fisica: " + e.getMessage()); } return null; } @Override public List buscarTodosHerdeiros() { SessionFactory sf = HibernateUtil.getSessionFactory(); Session s = sf.openSession(); try { List<PessoaFisica> lista = s.createCriteria(PessoaFisica.class).list(); s.close(); return lista; } catch (HibernateException e) { JOptionPane.showMessageDialog(null, "Erro ao listar os dados: " + e.getMessage()); } return null; } public PessoaFisica getPessoa() { return pessoa; } public void setPessoa(PessoaFisica pessoa) { this.pessoa = pessoa; } @Override public void criarHerdeiro(Contato contato, int idContato, String ph1, String ph2, String ph3, String ph4, Object util) { pessoa.setContato(contato); pessoa.setIdPessoaFisica(idContato); pessoa.setSobrenome(ph1); pessoa.setCpf(ph2); pessoa.setRg(ph3); pessoa.setSexo(ph4); } }