`
liuguofeng
  • 浏览: 450411 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

JBoss Hibernate 配置与应用

    博客分类:
  • Java
阅读更多

本文以一个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目录下,接着修改它的内容,我修改的如下:

Java代码 复制代码
  1. <?xml version="1.0" encoding="UTF-8"?>   
  2.   
  3. <datasources>   
  4.   <local-tx-datasource>   
  5.     <jndi-name>MySqlDS</jndi-name>   //jndi名字   
  6.     <use-java-context>false</use-java-context>   
  7.     <connection-url>jdbc:mysql://10.16.175.137:3306/test</connection-url>  //URL地址   
  8.     <driver-class>com.mysql.jdbc.Driver</driver-class>  //驱动   
  9.     <user-name>root</user-name>    //用户名   
  10.     <password>123456</password>  //密码   
  11.     <exception-sorter-class-name>   
  12.        org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter   
  13.     </exception-sorter-class-name>   
  14.     <metadata>   
  15.        <type-mapping>mySQL</type-mapping>   
  16.     </metadata>   
  17.   </local-tx-datasource>   
  18. </datasources>  
<?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文件,代码如下:

Java代码 复制代码
  1. <?xml version="1.0" encoding="UTF-8"?>   
  2. <server>    
  3.     <mbean code="org.jboss.hibernate.jmx.Hibernate"   name="jboss.har:service=Hibernate">      
  4.          <attribute   name="DatasourceName">MySqlDS</attribute>   //数据源名字   
  5.          <attribute   name="Dialect">org.hibernate.dialect.MySQLDialect</attribute>   //对应hibernate的Dialect   
  6.          <attribute   name="SessionFactoryName">java:/hibernate/SessionFactory</attribute>   //sessionFactory的jndi名字   
  7.          <attribute   name="ShowSqlEnabled">true</attribute>   //在控制台输出sql语句   
  8.          <attribute name="ScanForMappingsEnabled">true</attribute>  //自动搜索mapping文件   
  9.     </mbean>      
  10. </server>  
<?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文件:

Java代码 复制代码
  1. package org.xredleaf;   
  2.   
  3. import java.io.Serializable;   
  4.   
  5. public class User implements Serializable   
  6. {   
  7.     private String id;   
  8.     private String name;   
  9.     private int    age;   
  10.     public User(){   
  11.   
  12.     }   
  13.     public void setId(String id){   
  14.         this.id=id;   
  15.     }   
  16.     public String getId(){   
  17.         return id;   
  18.     }   
  19.     public void setName(String name){   
  20.         this.name=name;   
  21.     }   
  22.     public String getName(){   
  23.         return name;   
  24.     }   
  25.     public void setAge(int age){   
  26.         this.age=age;   
  27.     }   
  28.     public int getAge(){   
  29.         return age;   
  30.     }   
  31. }  
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 文件:

Java代码 复制代码
  1. <?xml version='1.0' encoding='utf-8'?>   
  2. <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">   
  3. <hibernate-mapping>    
  4.     <class name="org.xredleaf.User" table="user" >   
  5.       <id name="id" column="id" type="java.lang.String" >   
  6.           <generator class="uuid.hex"/>   
  7.       </id>   
  8.       <property name="name" column="name" type="java.lang.String" />    
  9.       <property name="age" column="age" type="java.lang.Integer" />   
  10.    </class>   
  11. </hibernate-mapping>  
<?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,文件如下:

Java代码 复制代码
  1. <%@page contentType="text/html;charset=GB2312" %>   
  2. <%   
  3. javax.naming.InitialContext ctx = new javax.naming.InitialContext();   
  4. org.hibernate.SessionFactory factory = (org.hibernate.SessionFactory)ctx.lookup("java:/hibernate/SessionFactory"); //之前配置的sessionFactory的名字   
  5. org.hibernate.Session se = factory.openSession();   
  6. org.hibernate.Query query=se.createQuery("from org.xredleaf.User user  where user.id='111' ");    
  7. java.util.List results=query.list();   
  8. java.util.ListIterator iterator=results.listIterator();   
  9. if(iterator.hasNext()){    
  10.     org.xredleaf.User user=(org.xredleaf.User)iterator.next();    
  11.     session.setAttribute("user",user);   
  12.     out.print("Login success");      
  13. }   
  14.   
  15. %>  
<%@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 啊

分享到:
评论

相关推荐

    Hibernate Jboss cache

    通过上述详细的介绍和分析,我们可以看出,将Jboss Cache与Hibernate相结合,不仅能够显著提高数据访问的速度,还能够通过合理的配置和优化,更好地适应各种应用场景的需求。这对于开发高性能、高可用性的企业级应用...

    Hibernate 2nd-level cache: JBoss Caching 配置与注意事项

    《Hibernate二级缓存:JBoss Caching配置与注意事项详解》 在Java的持久化框架Hibernate中,二级缓存是提高应用程序性能的重要手段。它能够存储已经加载过的对象,避免重复查询数据库,从而显著减少数据库访问次数...

    Jboss6.0.0 M4配置jndi和hibernate

    总结,配置JBoss 6.0.0 M4中的JNDI和Hibernate,涉及到了数据源的创建、Hibernate的配置以及如何在应用程序中使用这些配置。理解并掌握这些知识点对于构建基于Java EE的分布式企业应用至关重要。通过合理配置,我们...

    Jboss下hibernate整合EJB

    2. **创建Hibernate配置** - 编写`hibernate.cfg.xml`配置文件,配置数据库连接信息、方言、缓存等。 - 创建实体类,并使用Hibernate注解(@Entity, @Table等)定义其与数据库表的关系。 3. **编写EJB** - 创建...

    Hibernate配置文件和jar包

    一、Hibernate配置文件 1. hibernate.cfg.xml:这是Hibernate的核心配置文件,用于定义数据源、持久化类、SessionFactory等相关设置。例如,你需要在其中指定数据库连接的URL、用户名、密码,以及JDBC驱动等信息。...

    Hibernate配置数据源.

    ### Hibernate配置数据源详解 #### 一、引言 在软件开发过程中,特别是涉及大量数据库交互的应用场景下,选择合适的数据源配置对于提高系统性能、稳定性具有重要意义。Hibernate作为Java领域内广泛使用的对象关系...

    Jboss下开发ejb应用之一实体bean的应用

    2. JBoss应用服务器的安装与配置 3. Maven或Gradle项目配置 4. 注解驱动的实体Bean开发 5. 数据库关系映射 6. EJB本地接口与业务方法 7. JPA和数据源配置 8. 部署与管理 以上就是在JBoss下开发EJB应用,特别是实体...

    spring+hibernate配置与jar的配置下载

    - **Hibernate Tools**:这是一个非常有用的插件,它可以为Eclipse IDE提供额外的功能,包括自动生成Hibernate配置文件、代码生成等。具体安装步骤如下: - 打开Eclipse,然后点击“Help”菜单下的“Eclipse ...

    jboss配置及项目部署文档

    - `jbpm.hibernate.cfg.xml`: 如果涉及Hibernate,这个文件可能是Hibernate的配置,确保数据库连接信息、缓存设置等与JBoss环境相匹配。 最后,运行`JBOSS_HOME\bin\run.bat`启动JBoss服务器。启动成功后,你可以...

    jboss 服务应用

    JBoss 内置了 Hibernate ORM 工具,支持 JPA 规范,简化了数据库的交互,提供了数据的持久化能力。 8. **缓存** 使用 Infinispan,JBoss 提供了高性能的内存数据网格,可用于缓存和分布式计算。 9. **开发工具...

    Jboss4.2.2+Spring2.5.6+hibernate+JTA事务的实现

    **Hibernate** 是一个流行的ORM(Object-Relational Mapping)框架,它简化了Java应用与数据库之间的交互。在Spring框架中,Hibernate可以作为数据访问层,通过HQL(Hibernate Query Language)或者SQL语句操作...

    JBoss5.pdf

    它详细描述了JBoss EAP 5中Hibernate EntityManager的配置和使用方法,以及与Java EE容器的集成方式。 根据文档中提供的部分内容,我们可以推断出以下知识点: 1. 文档的法律声明部分提到,文档的内容和插图使用的...

    ejb3.0+Weblogic+Jboss安装配置及入门例子

    2. 持久化:通过`@Entity`注解,EJB3.0提供了更直观的持久化模型,支持JPA(Java Persistence API),并与Hibernate等ORM框架集成。 3. 自动事务管理:EJB容器自动处理事务,开发者无需关心底层的事务控制。 4. 无...

    hibernate3.3.2所有jar包及xml配置文件

    这个压缩包提供了完整运行Hibernate 3.3.2所需的环境,包括了所有必需的库文件和预配置的配置文件,使得开发者可以快速搭建起一个能够与数据库交互的Java应用程序。通过理解和配置`hibernate.cfg.xml`文件,开发者...

    精通JBoss——EJB与Web Services开发精解

    《精通JBoss——EJB与Web Services开发精解》是一本深入探讨企业级Java应用开发的专业书籍,专注于JBoss应用服务器的使用以及EJB(Enterprise JavaBeans)和Web Services的集成开发。本书旨在帮助读者全面掌握如何在...

    Jboss基础.pdf

    2. **JBoss的安装与配置** - **下载与解压**:从官方网站获取最新版本的JBoss AS或WildFly(JBoss的新版本),解压缩到指定目录。 - **配置环境变量**:设置JAVA_HOME指向JDK安装路径,将JBoss的bin目录添加到PATH...

Global site tag (gtag.js) - Google Analytics