你好banq,怎么用JNDI绑定SessionFactory

05-07-12 lvyg
你好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>
<p>

使用:

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

猜你喜欢