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);