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.CategoriaEmpresa; import model.Contato; import model.Empresa; import model.InterfaceContato; 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 EmpresaController extends ContatoController { private Empresa empresa; public EmpresaController() { empresa = new Empresa(); } @Override public void salvarHerdeiro() { SessionFactory sf = HibernateUtil.getSessionFactory(); Session s = sf.openSession(); Transaction tx = s.beginTransaction(); try { s.save(this.empresa); 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.empresa); 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.empresa); 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("Empresa.findByIdEmpresa"); q.setParameter("idEmpresa", id); Empresa emp = (Empresa) q.getSingleResult(); factory.close(); em.close(); return emp; } catch (Exception e) { JOptionPane.showMessageDialog(null, "Erro ao buscar Empresa: " + e.getMessage()); } return null; } @Override public List buscarTodosHerdeiros() { SessionFactory sf = HibernateUtil.getSessionFactory(); Session s = sf.openSession(); try { List<Empresa> lista = s.createCriteria(Empresa.class).list(); s.close(); return lista; } catch (HibernateException e) { JOptionPane.showMessageDialog(null, "Erro ao listar os dados: " + e.getMessage()); } return null; } @Override public void criarHerdeiro(Contato contato, int idContato, String ph1, String ph2, String ph3, String ph4, Object util) { ((Empresa) empresa).setContato(contato); ((Empresa) empresa).setIdEmpresa(idContato); ((Empresa) empresa).setReferenciaOnline(ph1); ((Empresa) empresa).setIdCategoriaEmpresaFK((CategoriaEmpresa) util); } public Empresa getEmpresa() { return empresa; } public void setEmpresa(Empresa empresa) { this.empresa = empresa; } }