一、在Java应用中使用Hibernate的步骤:
          创建Hibernate的配置文件  
        创建持久化类
         
          创建对象-关系映射文件
          通过Hibernate API编写访问数据库的代码

二、Hibernate的配置文件:hibernate.cfg.xml

  1. <?xml version='1.0' encoding='UTF-8'?> 
  2. <!DOCTYPE hibernate-configuration PUBLIC  
  3.           "-//Hibernate/Hibernate Configuration DTD 3.0//EN"  
  4.           "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 
  5.  
  6. <!-- Generated by MyEclipse Hibernate Tools.                   --> 
  7. <hibernate-configuration> 
  8.  
  9.     <session-factory> 
  10.         <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property> 
  11.         <property name="connection.url">jdbc:oracle:thin:@127.0.0.1:1521:orcl</property> 
  12.         <property name="connection.username">scott</property> 
  13.         <property name="connection.password">tiger</property> 
  14.         <property name="dialect">org.hibernate.dialect.Oracle9Dialect</property> 
  15.         <property name="hibernate.show_sql">true</property> 
  16.           
  17.         <mapping resource="com/test/Emp.hbm.xml"/> 
  18.     </session-factory> 
  19.  
  20. </hibernate-configuration> 

三、持久化类:EmpBean.java

持久化类符合JavaBean的规范,包含一些属性,以及与之对应的getXXX()和setXXX()方法。

  1. public class EmpBean  
  2. {  
  3.     private int empNo;  
  4.       
  5.     private String ename;  
  6.       
  7.     private String job;  
  8.       
  9.     private int mgr;  
  10.       
  11.     private Date hireDate;  
  12.       
  13.     private float sal;  
  14.       
  15.     private Integer comm;  
  16.       
  17.     private int deptNo;  
  18.       
  19.     省略get、set方法     

四、创建对象-关系映射文件:Emp.hbm.xml

  1. <?xml version="1.0"?>   
  2. <!DOCTYPE hibernate-mapping PUBLIC        
  3.     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"        
  4.     "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">   
  5.       
  6. <hibernate-mapping> 
  7.  
  8.     <class name="com.test.EmpBean" table="EMP"> 
  9.            
  10.         <id name="empNo" column="EMPNO" type="int"> 
  11.             <generator class="assigned"></generator> 
  12.         </id>          
  13.         <property name="ename"  column="ENAME" type="string"></property> 
  14.         <property name="job"  column="JOB"  type="string"></property> 
  15.         <property name="mgr"  column="MGR"  type="int"></property> 
  16.         <property name="hireDate" column="HIREDATE" type="date"></property> 
  17.         <property name="sal"  column="SAL"  type="float"></property> 
  18.         <property name="comm"  column="COMM"  type="int"></property> 
  19.         <property name="deptNo" column="DEPTNO"  type="int"></property> 
  20.     </class> 
  21.  
  22. </hibernate-mapping> 

 

五、通过Hibernate API编写访问数据库的代码

  1. public class EmpTest  
  2. {  
  3.     /**  
  4.      * <p>Discription:[方法功能中文描述]</p>  
  5.      * @param args  
  6.      * @author:[LJ]  
  7.      * @update:[2012-3-28] [LJ][创建]  
  8.      */ 
  9.  
  10.     @SuppressWarnings("unchecked")  
  11.     public static void main(String[] args)  
  12.     {  
  13.         // 根据默认位置的Hibernate配置文件的配置信息,创建一个Configuration实例  
  14.         Configuration conf = new Configuration().configure();         
  15.         // 创建SessionFactory实例     
  16.         SessionFactory sf = conf.buildSessionFactory();          
  17.         //创建一个会话    
  18.         Session session = sf.openSession();  
  19.           
  20.         //1、查询一条记录          
  21.          EmpBean empBean = (EmpBean)session.get(EmpBean.class7369);  
  22.         System.out.println("empNo:"+empBean.getEmpNo()+"  ename  "+empBean.getEname());  
  23.         //2、查询所有记录  
  24.         Query query = session.createQuery("from EmpBean");  
  25.         List list = query.list();  
  26.         Iterator iterator = list.iterator();  
  27.         while(iterator.hasNext())  
  28.         {  
  29.             empBean = (EmpBean)iterator.next();  
  30.             System.out.println("empNo:"+empBean.getEmpNo()+"  ename  "+empBean.getEname());  
  31.         }  
  32.           
  33.         //3、新增一条记录  
  34.         EmpBean emp = new EmpBean();            
  35.         emp.setEmpNo(1000);            
  36.         emp.setEname("Jack");  
  37.         emp.setDeptNo(10);  
  38.         //开始一个事务           
  39.         Transaction tran = session.beginTransaction();           
  40.         //保存   
  41.         session.save(emp);   
  42.         //提交事务           
  43.         tran.commit();            
  44.         //关闭session            
  45.         session.close();  
  46.  
  47.         //4、修改一条记录  
  48.         EmpBean emp = (EmpBean) session.get(EmpBean.class1000);            
  49.         if (emp != null)   
  50.         {                
  51.             emp.setEname("LJ");                             
  52.             Transaction tran = session.beginTransaction();           
  53.             // 修改        
  54.             session.update(emp);                
  55.             tran.commit();                   
  56.             // 关闭session            
  57.             session.close();    
  58.         }  
  59.  
  60.         //5、删除一条记录  
  61.         EmpBean emp = (EmpBean) session.get(EmpBean.class1000);            
  62.         if (emp != null)   
  63.         {                                           
  64.             Transaction tran = session.beginTransaction();              
  65.             // 删除    
  66.             session.delete(emp);                
  67.             tran.commit();                   
  68.             // 关闭session            
  69.             session.close();    
  70.         }  
  71.     }  
  72. }