简单的hibernate实例
    今天弄了个hibernate的小实例,很简单,是可以在jboss上运行的。在这里简单说下,希望对刚刚学习hibernate或者jboss的朋友有所帮助。
   
首先说说什么是hibernateHibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSPWeb应用中使用,最具革命意义的是,Hibernate可以在应用EJBJ2EE架构中取代CMP,完成数据持久化的重任。
    我个人认为在EJB3.0中,使用Hibernate取代Entity Bean是完全可以的,现在的Hibernate技术已经相当成熟,我们来说说简单是实例,给大家演示一个Hibernate实例是如何在jboss上跑起来了。
 
hibernate中我们主要关注几个基础文件,我使用的是oracle数据库,定义的数据库表为EntityUsers。我们新建EntityUsers.java对象、EntityUsers.hbm.xmlXML文件、hibernate.cfg.xmlXML文件和EntityUsersManage.java对象。
    hibernate.cfg.xml
文件是我们在和数据库表关联是的xml配置文件,里面主要是数据库连接时的一些内容,具体如下:
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
  <session-factory>
  <property name="hibernate.connection.url">jdbc:oracle:thin:@192.168.1.80:1521:demo</property>
  <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
  <property name="hibernate.connection.username">bizbeyond</property>
  <property name="hibernate.connection.password">bizbeyond</property>
  <property name="hibernate.dialect">org.hibernate.dialect.Oracle8iDialect</property>
  <property name="show_sql">true</property>
   <mapping resource=".\com\hibernate3\EjbUsers.hbm.xml"/>
   <mapping resource=".\com\hibernate3\EjbText.hbm.xml"/>
  </session-factory>
</hibernate-configuration>
    EntityUsers.java
文件是数据库表在程序中对应的实体类,这里注意:对象名称要和数据库表明一致,对象里面的属性和属性和类型都要和数据库里面的字段一致。这样做的目的是让实地数据库表能够对象化的基础。针对我测试项目的表而言,我的实体类是下面这样子的:
package com.hibernate3;
public class EntityUsers {
 private int id;
 private String name;
 private int age;
 public void setid(int id) 
 {this.id = id;}
 public int getid() 
 {return this.id;}
 public void setname(String name) 
 {this.name = name;}
 public String getname() 
 {return this.name;}
 public void setage(int age)
 {this.age = age;}
 public int getage()
 {return this.age;}
}
    EntityUsers.hbm.xml
文件是我们在数据库上映射文件,主要的目的就是让我们的数据库表能够映射到对象上,用专业的点词语是ORM——ORM的全称是Object Relational Mapping,即对象关系映射)。内容如下:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN" "
http://hibernate.sourceforge.net/hibernate-
mapping-3.0.dtd">
<hibernate-mapping>
 <class name="com.hibernate3.EntityUsers" table="BIZBEYOND.ENTITYUSERS">        
         <id name="id" column="ID" type="java.lang.Integer"></id>        
         <property name="name" column="NAME" type="java.lang.String"/>
         <property name="age" column="AGE" type="java.lang.Integer"/>
    </class>
</hibernate-mapping> 
   
最后是EntityUsersManage.java对象,就是操作和管理EntityUsers.java的对象,不过我在这里有两种不同的见解,喜欢的朋友都是可以试试,一个就是像现在这样,实体类和实体类的处理分来。还有只用就是就是用一个类来继承实体类对象,新类的属性是表字段,方法就是表字段的控制。    EntityUsersManage.java对象如下:

 package com.hibernate3;
 import java.util.List;
 import java.util.Properties;
 import javax.jms.QueueConnectionFactory;
 import javax.naming.InitialContext;
 import org.hibernate.Session;
 import org.hibernate.SessionFactory;
 import org.hibernate.Transaction;
 import org.hibernate.cfg.Configuration;
 public class EntityUsersManage
 {
  public void Add(EntityUsers entityUser)
  {
   try
   {
    Configuration conf = new Configuration().configure();
    SessionFactory sf = conf.buildSessionFactory();
           Session session = sf.openSession();
           Transaction tx = session.beginTransaction();
           session.save(entityUser);
           tx.commit();
           session.close();
       }
       catch(Exception e)
       {
           e.printStackTrace();
       }
  } 
 }
   
在上面我们使用了简单的四个基础文件,完成了hibernate的表映射,表字段的映射和表管理对象,是不是很简单呢?有关显示的层面
    我们有说明,应为那不是这篇文章的重点,要是喜欢的朋友我在前面的博文中写做servletjsp的简单介绍,大家可以去学习学习。希望和朋友们多多交流!