JBoss Hibernate 配置與應用(轉載)

原文:   http://www.iteye.com/topic/68868

JBoss Hibernate 配置與應用
作者:蕭紅葉 2007年4月4日

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

代碼
  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>  

<script></script>

 

這樣我們的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文件,代碼如下:

 

代碼
  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>  

<script></script>

 

如果有多個數據庫,你可以建多個數據源,然後在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文件:

 

代碼
  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. }  

<script></script> 然後將它編譯成User.class文件
接着我們寫XML映射文件User.hbm.xml 文件:

 

 

代碼
  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>  

<script></script>

 

好了,這樣我們的環境就搭好了!呵呵,喝口茶!

 二、寫一個登錄頁面

進入到jboss-4.2.0.CR1\server\default\deploy\jboss-web.deployer\ROOT.war目錄下,新建一個login.jsp,文件如下:

 

代碼
  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. %>  

<script></script> 好了大功告成,我們來啓動一下jboss,運行run.bat
打開http://localhost:8080/login.jsp看一下,是不是顯示Login success 啊

發佈了16 篇原創文章 · 獲贊 0 · 訪問量 1938
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章