Opa…
Sempre trabalhei com uma implementação de Hibernate já pronta, então quando era necessario usar o BD era só instanciar esse objeto já pronto e acionar algum metodo dele.
Bom o problema é o seguinte, estou implementando uma aplicação de grande porte do zero usando ejs e tals…
mais estou com duvida da melhor maneira de implementar o hibernate.
Tenho um exemplo funcional mais não sei se ele é profissional…rsrsrs
Segue exemplo da minha factory de configuração.
Em alguns outros projetos que eu pesquisei, foram implementados varias coisas dentro dessa factory.
Seria bom deixar o hibernate trabalhar o a gente, implementando da melhor forma ?
private static final SessionFactory sessionFactory;
private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();
static{
try{
sessionFactory = new org.hibernate.cfg.Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
}catch (Exception e) {
throw new ExceptionInInitializerError(e);
}
}
public static Session getInstace(){
session = (Session) threadLocal.get();
session = sessionFactory.openSession();
threadLocal.set(session);
return session;
}
E esse é meu DAO
public Categoria getCategoria(Integer id)throws Exception{
session = ConnectionLivrariaFactory.getInstace();
Transaction tx = null;
Categoria categoria = null;
try{
tx = session.beginTransaction();
categoria = (Categoria)session.get(Categoria.class, id);
tx.commit();
}catch(Exception e){
e.printStackTrace();
log.error("Erro ao tentar resgatar a categoria");
tx.rollback();
}
return categoria;
}
Já tenho em mente em criar um DAO bem generico para facilitar…
hibernate.cfg.xml
<session-factory>
<property name="hibernate.connection.driver_class" >org.gjt.mm.mysql.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost/livraria</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">gi</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
Isso funciona mais não sei se da melhor forma.
Além disso tmb quero utilizar um pool de conexão com o c3po, mais estou confuso em quais propriedades adicionar
ao meu arquivo de configuração(hibernate.cfg.xml).
Bom se alguém poder me ajudar com qualquer infomação eu agradeço !!
Valeu…Abraços