controller.ContatoController.java Source code

Java tutorial

Introduction

Here is the source code for controller.ContatoController.java

Source

/*
 * 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;
    }

}