在这里,我们将创建第一个不使用集成开发环境的Hibernate应用程序。要创建第一个Hibernate应用程序,我们需要按照以下步骤进行操作:

  1. 创建持久化类
  2. 为持久化类创建映射文件
  3. 创建配置文件
  4. 创建检索或存储持久对象的类
  5. 加载jar文件
  6. 使用命令提示符运行第一个Hibernate应用程序

1) 创建持久化类

一个简单的持久化类应该遵循一些规则:

  • 无参构造函数:建议至少有一个默认构造函数,至少包可见性,以便Hibernate可以使用newInstance()方法创建持久化类的实例。
  • 提供标识符属性:最好分配一个属性作为id。该属性在数据库中充当主键。
  • 声明getter和setter方法:Hibernate默认通过getter和setter方法名称识别方法。
  • 优先选择非最终类:Hibernate使用代理的概念,这取决于持久化类。应用程序程序员将无法使用延迟关联获取代理。

让我们创建简单的持久化类:

Employee.java

package cn.javatiku.mypackage; 

public class Employee { 
  private int id; 
  private String firstName, lastName; 

  public int getId() { 
    return id; 
  } 

  public void setId(int id) { 
    this.id = id; 
  } 

  public String getFirstName() { 
    return firstName; 
  } 

  public void setFirstName(String firstName) { 
    this.firstName = firstName; 
  } 

  public String getLastName() { 
    return lastName; 
  } 

  public void setLastName(String lastName) { 
    this.lastName = lastName; 
  } 
}

2) 为持久化类创建映射文件

映射文件的名称按照惯例应该是class_name.hbm.xml。映射文件有许多元素。

  • hibernate-mapping:它是映射文件中的根元素,包含所有映射元素。
  • class:它是hibernate-mapping元素的子元素。它指定了持久化类。
  • id:它是class的子元素。它指定了类中的主键属性。
  • generator:它是id的子元素。用于生成主键。有许多生成器类,如assigned、increment、hilo、sequence、native等。我们稍后将学习所有的生成器类。
  • property:它是class的子元素,指定持久化类的属性名称。

让我们看一下Employee类的映射文件:

employee.hbm.xml

<?xml version='1.0' encoding='UTF-8'?> 
<!DOCTYPE hibernate-mapping PUBLIC 
 "-//Hibernate/Hibernate Mapping DTD 5.3//EN" 
 "http://hibernate.sourceforge.net/hibernate-mapping-5.3.dtd"> 

<hibernate-mapping> 
  <class name="cn.javatiku.mypackage.Employee" table="emp1000"> 
    <id name="id"> 
      <generator class="assigned"></generator> 
    </id> 
    <property name="firstName"></property> 
    <property name="lastName"></property> 
  </class> 
</hibernate-mapping> 

3) 创建配置文件

配置文件包含关于数据库和映射文件的信息。按照惯例,它的名称应该是hibernate.cfg.xml。

hibernate.cfg.xml

<?xml version='1.0' encoding='UTF-8'?> 
<!DOCTYPE hibernate-configuration PUBLIC 
 "-//Hibernate/Hibernate Configuration DTD 5.3//EN" 
 "http://hibernate.sourceforge.net/hibernate-configuration-5.3.dtd"> 

<hibernate-configuration> 

  <session-factory> 
    <property name="hbm2ddl.auto">update</property> 
    <property name="dialect">org.hibernate.dialect.Oracle9Dialect</property> 
    <property name="connection.url">jdbc:oracle:thin:@localhost:1521:xe</property> 
    <property name="connection.username">system</property> 
    <property name="connection.password">jtp</property> 
    <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property> 
    <mapping resource="employee.hbm.xml"/> 
  </session-factory> 

</hibernate-configuration> 

4) 创建检索或存储对象的类

在这个类中,我们只是将员工对象存储到数据库中。

package cn.javatiku.mypackage;  

import org.hibernate.Session;  
import org.hibernate.SessionFactory;  
import org.hibernate.Transaction; 
import org.hibernate.boot.Metadata; 
import org.hibernate.boot.MetadataSources; 
import org.hibernate.boot.registry.StandardServiceRegistry; 
import org.hibernate.boot.registry.StandardServiceRegistryBuilder; 

public class StoreData {  
  public static void main(String[] args) {  
    //Create typesafe ServiceRegistry object  
    StandardServiceRegistry ssr = new StandardServiceRegistryBuilder().configure("hibernate.cfg.xml").build(); 

    Metadata meta = new MetadataSources(ssr).getMetadataBuilder().build(); 

    SessionFactory factory = meta.getSessionFactoryBuilder().build(); 
    Session session = factory.openSession(); 
    Transaction t = session.beginTransaction();  

    Employee e1 = new Employee();  
    e1.setId(101);  
    e1.setFirstName("Gaurav");  
    e1.setLastName("Chawla");  

    session.save(e1); 
    t.commit(); 
    System.out.println("successfully saved");  
    factory.close(); 
    session.close();  
  }  
}

5) 加载jar文件

要成功运行Hibernate应用程序,您应该拥有hibernate5.jar文件。

6) 如何在不使用IDE的情况下运行第一个Hibernate应用程序

我们可以通过IDE(例如Eclipse、Myeclipse、Netbeans等)或不使用IDE来运行此Hibernate应用程序。我们将在下一章中学习如何在Eclipse IDE中创建Hibernate应用程序。

要在不使用IDE的情况下运行Hibernate应用程序:

  • 为此示例安装oracle10g。
  • 加载Hibernate的jar文件。(加载jar文件的一种方法是将所有jar文件复制到JRE/lib/ext文件夹下)。最好将这些jar文件放在公共和私有JRE中。
  • 现在,通过java cn.javatiku.mypackage.StoreData运行StoreData类。

2-1.jpg

标签: Hibernate, Hibernate教程, Hibernate框架, Hibernate框架设计, Hibernate初级教程, Hibernate框架用法, Hibernate指南, Hibernate入门, Hibernate中级教程, Hibernate进阶教程, Hibernate高级教程, Hibernate下载