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.math.BigDecimal; 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.InterfaceProduto; import model.Produto; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import util.HibernateUtil; /** * * @author thales */ public abstract class ProdutoController { private Produto produto; public ProdutoController() { } public void salvarProduto() { SessionFactory sf = HibernateUtil.getSessionFactory(); Session s = sf.openSession(); Transaction tx = s.beginTransaction(); try { s.save(this.produto); tx.commit(); JOptionPane.showMessageDialog(null, "Produto Inserido com Sucesso!"); } catch (HeadlessException e) { JOptionPane.showMessageDialog(null, "Erro ao inserir os dados: " + e.getMessage()); tx.rollback(); } s.close(); } public void atualizarProduto() { SessionFactory sf = HibernateUtil.getSessionFactory(); Session s = sf.openSession(); Transaction tx = s.beginTransaction(); try { s.merge(this.produto); tx.commit(); JOptionPane.showMessageDialog(null, "Produto Atualizado com Sucesso!"); } catch (HeadlessException e) { JOptionPane.showMessageDialog(null, "Erro ao atualizar os dados: " + e.getMessage()); tx.rollback(); } s.close(); } public void deletarProduto() { SessionFactory sf = HibernateUtil.getSessionFactory(); Session s = sf.openSession(); Transaction tx = s.beginTransaction(); try { s.delete(this.produto); tx.commit(); JOptionPane.showMessageDialog(null, "Produto Deletado com Sucesso!"); } catch (HeadlessException e) { JOptionPane.showMessageDialog(null, "Erro ao Deletar os dados: " + e.getMessage()); tx.rollback(); } s.close(); } public Produto buscarUltimoProduto() { try { EntityManagerFactory factory = Persistence.createEntityManagerFactory("sistemarf-hPU"); EntityManager em = factory.createEntityManager(); Query q = em.createNamedQuery("Produto.findLastValue"); q.setMaxResults(1); Produto p = (Produto) q.getSingleResult(); em.close(); factory.close(); return p; } catch (Exception e) { JOptionPane.showMessageDialog(null, "Erro ao buscar o ultimo produto: " + e.getMessage()); } return null; } public Produto buscarProduto(int id) { try { EntityManagerFactory factory = Persistence.createEntityManagerFactory("sistemarf-hPU"); EntityManager em = factory.createEntityManager(); Query q = em.createNamedQuery("Produto.findByIdProduto"); q.setParameter("idProduto", id); q.setMaxResults(1); Produto p = (Produto) q.getSingleResult(); em.close(); factory.close(); return p; } catch (Exception e) { JOptionPane.showMessageDialog(null, "Erro ao buscar um produto: " + e.getMessage()); } return null; } public Produto criarProduto(String nome, String descricao) { Produto p = new Produto(); p.setNome(nome); p.setDescricao(descricao); return p; } public List buscarTodosProdutos() { SessionFactory sf = HibernateUtil.getSessionFactory(); Session s = sf.openSession(); try { List<Produto> lista = s.createCriteria(Produto.class).list(); s.close(); return lista; } catch (HibernateException e) { JOptionPane.showMessageDialog(null, "Erro ao listar os dados: " + e.getMessage()); } return null; } public abstract void salvarHerdeiro(); public abstract void atualizarHerdeiro(); public abstract void deletarHerdeiro(); public abstract InterfaceProduto buscarHerdeiro(int id); public abstract List buscarTodosHerdeiros(); /* * * PH? -> Parametro do herdeiro * Doce -> Possui 2 | AluguelPeca -> Possui 1 * Futuramente colocar uma imagem */ public abstract void criarHerdeiro(Produto produto, int idProduto, BigDecimal ph1, Integer ph2); public Produto getProduto() { return produto; } public void setProduto(Produto produto) { this.produto = produto; } }