quinta-feira, 2 de abril de 2009

Acesso a banco via Hibernate

Para buscar a sessão responsável por executar o acesso ao banco, foi criado uma classe da seguinte forma:


import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;

public class HibernateUtil {

private static final SessionFactory sessionFactory;
static {
try {
// Create the SessionFactory from hibernate.cfg.xml
sessionFactory = new AnnotationConfiguration().configure()
.buildSessionFactory();
} catch (Throwable ex) {
// Make sure you log the exception, as it might be swallowed
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}

public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}


E para realizar o acesso, basta chama-la da seguinte forma:


public class UserDaoImpl implements UserDao {

private Session session;

public void salvar(User user) {
session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
session.save(user);
session.getTransaction().commit();
}

public List listar() {
session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
List userList = session.createQuery("from User").list();
session.getTransaction().commit();
return userList;
}



E então resta apenas utilizar de forma simples:


User c1 = new User();
c1.setNome("Raul Seixas");

User c2 = new User();
c2.setNome("Bruce Dickinson");

UserDao clienteDAO = new UserDaoImpl();
clienteDAO.salvar(c1);
clienteDAO.salvar(c2);

Nenhum comentário: