JBoss Hibernate 配置与应用

本文通过实例介绍如何将 Hibernate 集成到 JBoss 中并操作 MySQL 数据库,包括配置数据源、创建 JBoss 服务及实现基本的数据库操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 
JBoss Hibernate 配置与应用
本文以一个jboss_hibernate为例介绍怎么把hibernate部署成一个jboss的service,然后用hibernate 去操作数据库。
配置开发环境
在进行开发之前,需要首先获得JBoss、MySQL、相应数据库的JDBC驱动类库。JBoss可以从www.jboss.org中下载,MySQL 从www.mysql.org 下载
解压jboss到一个文件夹,我们把mysql的jdbc驱动复制到jboss-4.2.0.CR1/server/default/lib下
然后我们配置一个mysql的数据源,从jboss-4.2.0.CR1/docs/examples/jca目录下复制一份mysql-ds.xml到jboss-4.2.0.CR1/server/default/deploy目录下,接着修改它的内容,我修改的如下:
代码
<?xml version="1.0" encoding="UTF-8"?>   
<datasources>   
  
<local-tx-datasource>   
    
<jndi-name>MySqlDS</jndi-name>   //jndi名字    
    
<use-java-context>false</use-java-context>   
    
<connection-url>jdbc:mysql://10.16.175.137:3306/test</connection-url>  //URL地址    
    
<driver-class>com.mysql.jdbc.Driver</driver-class>  //驱动    
    
<user-name>root</user-name>    //用户名    
    
<password>123456</password>  //密码    
    
<exception-sorter-class-name>   
       org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter    
    
</exception-sorter-class-name>   
    
<metadata>   
       
<type-mapping>mySQL</type-mapping>   
    
</metadata>   
  
</local-tx-datasource>   
</datasources> 
 

 

这样我们的mysql数据源就配置好了,接下来我们来做一个jboss_hibernate.har文件
进入到jboss-4.2.0.CR1/jboss-4.2.0.CR1/server/default/deploy 新建一个jboss_hibernate.har文件夹,该目录下放的将是你的POJO 文件和对应的.hbm.xml文件以及jboss-service.xml文件。
在jboss_hibernate.har目录新建一个文件夹META-INF,在该目录下我们来写一个jboss-service.xml文件,代码如下:
 
代码
<?xml version="1.0" encoding="UTF-8"?>   
<server>     
    
<mbean code="org.jboss.hibernate.jmx.Hibernate"   name="jboss.har:service=Hibernate">       
         
<attribute   name="DatasourceName">MySqlDS</attribute>   //数据源名字    
         
<attribute   name="Dialect">org.hibernate.dialect.MySQLDialect</attribute>   //对应hibernate的Dialect    
         
<attribute   name="SessionFactoryName">java:/hibernate/SessionFactory</attribute>   //sessionFactory的jndi名字    
         
<attribute   name="ShowSqlEnabled">true</attribute>   //在控制台输出sql语句    
         
<attribute name="ScanForMappingsEnabled">true</attribute>  //自动搜索mapping文件    
    
</mbean>       
</server>   

 

如果有多个数据库,你可以建多个数据源,然后在jboss-service.xml文件里写上多个mbean,我是这样做的,呵呵,不知道有没有更好的办法
接着我们来写我们的hibernate 文件
在jboss-4.2.0.CR1/jboss-4.2.0.CR1/server/default/deploy/jboss_hibernae.har/目录下新建文件夹org.xredleaf,我们写一个对应数据库的User.java文件:
 
代码
package org.xredleaf;   
  

import java.io.Serializable;    
   
public class User implements Serializable    
{    
    
private String id;    
    
private String name;    
    
private int    age;    
    
public User(){    
    }    
    
public void setId(String id){    
        
this.id=id;    
    }    
    
public String getId(){    
        
return id;    
    }    
    
public void setName(String name){    
        
this.name=name;    
    }    
    
public String getName(){    
        
return name;    
    }    
    
public void setAge(int age){    
        
this.age=age;    
    }    
    
public int getAge(){    
        
return age;    
    }    
}   

然后将它编译成User.class文件
接着我们写XML映射文件User.hbm.xml 文件:

 
代码
<?xml version='1.0' encoding='utf-8'?>   
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">   
<hibernate-mapping>     
    
<class name="org.xredleaf.User" table="user" >   
      
<id name="id" column="id" type="java.lang.String" >   
          
<generator class="uuid.hex"/>   
      
</id>   
      
<property name="name" column="name" type="java.lang.String" />     
      
<property name="age" column="age" type="java.lang.Integer" />   
   
</class>   
</hibernate-mapping> 
 

 

好了,这样我们的环境就搭好了!呵呵,喝口茶!
 二、写一个登录页面
进入到jboss-4.2.0.CR1/server/default/deploy/jboss-web.deployer/ROOT.war目录下,新建一个login.jsp,文件如下:
 
代码
<%@page contentType="text/html;charset=GB2312" %>    
<%    
javax
.naming.InitialContext ctx = new javax.naming.InitialContext();    
org.hibernate.SessionFactory factory 
= (org.hibernate.SessionFactory)ctx.lookup("java:/hibernate/SessionFactory"); //之前配置的sessionFactory的名字    
org.hibernate.Session se 
= factory.openSession();    
org.hibernate.Query query=se.createQuery("from org.xredleaf.User user  where user.id='111' ");     
java.util.List results
=query.list();    
java.util.ListIterator iterator=results.listIterator();    
if(iterator.hasNext()){     
    org.xredleaf.User user
=(org.xredleaf.User)iterator.next();     
    
session.setAttribute("user",user);    
    out.print("Login success");       
}    
%
>   

好了大功告成,我们来启动一下jboss,运行run.bat
打开http://localhost:8080/login.jsp看一下,是不是显示Login success 啊

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值