jboss和hibernate的整合

本文详细介绍如何在JBoss应用服务器上整合Hibernate框架。通过配置hibernate-service.xml文件及DAOFactory类中的JNDI查找代码,实现与Oracle数据源的连接。此教程适用于希望在JBoss环境下使用Hibernate进行持久化操作的开发者。
摘要由CSDN通过智能技术生成

以DHpayEJB工程为例。

DHpayEJB/src/META-INF下需要一个服务文件,比如hibernate-service.xml文件(jboss会将以-service.xml结尾的文件注册为服务)。内容如下

<?xml version="1.0" encoding="UTF-8"?>
<server>
    <mbean code="org.jboss.hibernate.jmx.Hibernate" name="jboss.har:service=Hibernate">

        <!--在jboss中设置的jndi-->
        <attribute name="DatasourceName">java:/OracleDS</attribute>
        <attribute name="Dialect">org.hibernate.dialect.Oracle9Dialect</attribute>

        <!--设置sessionFactory和jndi映射,在DAOFactroy.java中创建 SessionFactory实例时调用的jndi名字

        将是此处设置的名字而不是数据源名称。 -->
        <attribute name="SessionFactoryName">
            java:/hibernate/dhgateSessionFactory
        </attribute>
        <attribute name="CacheProviderClass">org.hibernate.cache.HashtableCacheProvider</attribute>       
        <attribute name="ShowSqlEnabled">false</attribute>
    </mbean>
</server>

 

在DAOFactory类中的按如下方式查找SessionFactory:

 

private void getSessionFactory() {

        boolean productmode = false;
        try {
            //此处的jndi与hibernate-service.xml文件中配置一致
            String jndisf = "java:/hibernate/dhgateSessionFactory";
            sessionFactory = (SessionFactory) new InitialContext().lookup(jndisf);
            productmode = true;
        } catch (NameNotFoundException ex) {
            // ignore just for flowing code to run
        } catch (NamingException ex) {
            // ignore just for flowing code to run
        }


        if (sessionFactory == null) {
            throw new RuntimeException(
                    "can't not get sessionFactory , maybe you never deploy dhgate-hibernate.har to jboss ,please check it!!!");
        }

    }

 

数据源在xxx-ds.xml文件中配置。

这样hibernate和jboss就整合完成了。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值