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 org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import util.HibernateUtil; /** * * @author thales */ public abstract class ContatoController { private Contato contato; public ContatoController() { } public void salvarContato() { SessionFactory sf = HibernateUtil.getSessionFactory(); Session s = sf.openSession(); Transaction tx = s.beginTransaction(); try { s.save(this.contato); tx.commit(); JOptionPane.showMessageDialog(null, "Contato Inserido com Sucesso!"); } catch (HeadlessException e) { JOptionPane.showMessageDialog(null, "Erro ao inserir os dados: " + e.getMessage()); tx.rollback(); } s.close(); } public void atualizarContato() { SessionFactory sf = HibernateUtil.getSessionFactory(); Session s = sf.openSession(); Transaction tx = s.beginTransaction(); try { s.merge(this.contato); tx.commit(); JOptionPane.showMessageDialog(null, "Contato Atualizado com Sucesso!"); } catch (HeadlessException e) { JOptionPane.showMessageDialog(null, "Erro ao atualizar os dados: " + e.getMessage()); tx.rollback(); } s.close(); } public void deletarContato() { SessionFactory sf = HibernateUtil.getSessionFactory(); Session s = sf.openSession(); Transaction tx = s.beginTransaction(); try { s.delete(this.contato); tx.commit(); JOptionPane.showMessageDialog(null, "Contato Deletado com Sucesso!"); } catch (HeadlessException e) { JOptionPane.showMessageDialog(null, "Erro ao Deletar os dados: " + e.getMessage()); tx.rollback(); } s.close(); } public Contato buscarUltimoContato() { try { EntityManagerFactory factory = Persistence.createEntityManagerFactory("sistemarf-hPU"); EntityManager em = factory.createEntityManager(); Query q = em.createNamedQuery("Contato.findLastValue"); q.setMaxResults(1); Contato c = (Contato) q.getSingleResult(); em.close(); factory.close(); return c; } catch (Exception e) { JOptionPane.showMessageDialog(null, "Erro ao buscar o ultimo contato: " + e.getMessage()); } return null; } public Contato buscarContato(int id) { try { EntityManagerFactory factory = Persistence.createEntityManagerFactory("sistemarf-hPU"); EntityManager em = factory.createEntityManager(); Query q = em.createNamedQuery("Contato.findByIdContato"); q.setParameter("idContato", id); q.setMaxResults(1); Contato c = (Contato) q.getSingleResult(); em.close(); factory.close(); if (c == null) JOptionPane.showMessageDialog(null, "Contato nulo"); else JOptionPane.showMessageDialog(null, c.toString()); return c; } catch (Exception e) { JOptionPane.showMessageDialog(null, "Erro ao buscar um contato: " + e.getMessage()); } return null; } public Contato criarContato(String email, String nome, String logradouro, String complemento, String numero, String cidade, String uf, String cep, String telefone, String telefoneAlt) { Contato c = new Contato(); c.setEmail(email); c.setNome(nome); c.setLogradouro(logradouro); c.setComplemento(complemento); c.setNumero(numero); c.setCidade(cidade); c.setUf(uf); c.setCep(cep); c.setTelefone(telefone); c.setTelefoneAlt(telefoneAlt); return c; } public abstract void salvarHerdeiro(); public abstract void atualizarHerdeiro(); public abstract void deletarHerdeiro(); public abstract InterfaceContato buscarHerdeiro(int id); public abstract List buscarTodosHerdeiros(); /* * * PH? -> Parametro do herdeiro * PessoaFisica -> Possui 5 | PessoaJuridica -> Possui 4 | Empresa -> Possui 3 * Object util -> Se tiver que passar algo diferente */ public abstract void criarHerdeiro(Contato contato, int idContato, String ph1, String ph2, String ph3, String ph4, Object util); public Contato getContato() { return contato; } public void setContato(Contato contato) { this.contato = contato; } public List buscarTodosContatos() { SessionFactory sf = HibernateUtil.getSessionFactory(); Session s = sf.openSession(); try { List<Contato> lista = s.createCriteria(Contato.class).list(); s.close(); return lista; } catch (HibernateException e) { JOptionPane.showMessageDialog(null, "Erro ao listar os dados: " + e.getMessage()); } return null; } }