你好banq,怎么用JNDI绑定SessionFactory

lvyg
05-07-12 2 297

你好banq,怎么用JNDI绑定SessionFactory

banq
2005-07-12 13:14

配置hibernate.cfg.xml的connection.datasource为JNDI名称:



<hibernate-configuration>
<session-factory>
<property name="connection.datasource">java:/SampleDS</property>
<property name=
"show_sql">true</property>
<property name=
"dialect">
net.sf.hibernate.dialect.MySQLDialect
</property>
<!-- Mapping files 配置映射文件 -->
<mapping resource=
"invoice_hbm.xml"/>
<mapping resource=
"intype_hbm.xml"/>
<mapping resource=
"userinfo_hbm.xml"/>
</session-factory>
</hibernate-configuration>




使用:

new Configuration().configure().buildSessionFactory()创建SessionFactory,并将这个实例保存在容器的Application中或Singleton(尽量少用singleton),反正这个SessionFactory只能创建一次,而且每次都是使用这同样的SessionFactory。
如果你使用struts,可以使用struts的plugin实现这些功能,或者使用lazy初始化。

在Jdon框架中,就是在jdonframework.xml配置一个SessionFactory创建类,类属性是SessionFactory,类似JPetstore中DaoManagerFactory.java,只要稍微修改Jpetstore的DaoManagerFactory.java,就可以将JPestore的持久层改为Hibernate了


lvyg
2005-07-12 19:55

你好banq,我是问当用下面的代码创建SessionFactory时,JNDI和SessionFactory如何绑定? 谢谢
SessionFactory sf = (SessionFactory)new InitialContext().lookup(
"hibernate/session_factory");
//问题1:通过JNDI查找,但hiernate/session_factory是怎么绑定的?
Session s = sf.openSession();