(Confira minha nova série de posts: Spring + JPA + JTA)
A classe controladora DAO (Data Access Object é um padrão de projeto utilizado em engenharia de softwares orientados a objeto) vai se encarregar da ligação entre o Hibernate e as classes controladoras de cada CRUD da aplicação web. Ela pode ser construída particularmente para uma classe, mas utilizando polimorfismo podemos criar métodos que abstraem a classe para que seja totalmente reaproveitável.
No pacote controle, criaremos uma classe chamada DAO.java, com o código a seguir:
O código é bem simples, e não há muitas considerações a fazer. O método crud pode ser utilizado de três maneiras: uma para inserção, exclusão e atualização (linhas 15-35), outra para recuperar um objeto (linhas 37-51) e uma terceira que retorna uma lista de objetos (linhas 53-60).
Esta classe será instanciada no bean gerenciável que se encarregará da integração entre a interface visual e os dados.
Voltar para DataTables básico
A classe controladora DAO (Data Access Object é um padrão de projeto utilizado em engenharia de softwares orientados a objeto) vai se encarregar da ligação entre o Hibernate e as classes controladoras de cada CRUD da aplicação web. Ela pode ser construída particularmente para uma classe, mas utilizando polimorfismo podemos criar métodos que abstraem a classe para que seja totalmente reaproveitável.
No pacote controle, criaremos uma classe chamada DAO.java, com o código a seguir:
01 package controle; 02 03 import java.util.List; 04 import java.util.logging.Level; 05 import java.util.logging.Logger; 06 import org.hibernate.Session; 07 08 public class DAO { 09 10 private Session session; 11 12 public DAO() { 13 } 14 15 public boolean crud(Object o, String operacao) { 16 session = HibernateUtil.getSessionFactory().openSession(); 17 session.beginTransaction(); 18 switch (Integer.parseInt(operacao)) { 19 case 1: { 20 session.save(o); 21 break; 22 } 23 case 2: { 24 session.delete(o); 25 break; 26 } 27 case 3: { 28 session.update(o); 29 break; 30 } 31 } 32 session.getTransaction().commit(); 33 session.close(); 34 return true; 35 } 36 37 public Object crud(Object o, int id) { 38 Object objeto = null; 39 session = HibernateUtil.getSessionFactory().openSession(); 40 Class classe = o.getClass(); 41 try { 42 objeto = classe.newInstance(); 43 } catch (InstantiationException ex) { 44 Logger.getLogger(DAO.class.getName()).log(Level.SEVERE, null, ex); 45 } catch (IllegalAccessException ex) { 46 Logger.getLogger(DAO.class.getName()).log(Level.SEVERE, null, ex); 47 } 48 objeto = session.get(o.getClass(), new Integer(id)); 49 session.close(); 50 return objeto; 51 } 52 53 public List crud(String sql) { 54 session = HibernateUtil.getSessionFactory().openSession(); 55 session.beginTransaction(); 56 List lista = session.createQuery(sql).list(); 57 session.getTransaction().commit(); 58 session.close(); 59 return lista; 60 } 61 }
Esta classe será instanciada no bean gerenciável que se encarregará da integração entre a interface visual e os dados.
Voltar para DataTables básico
Nenhum comentário:
Postar um comentário