在这里, 我们将创建第一个没有IDE的Hibernate应用程序。要创建第一个Hibernate应用程序, 我们需要执行以下步骤:
- 创建持久性类
- 为持久性类创建映射文件
- 创建配置文件
- 创建检索或存储持久对象的类
- 加载jar文件
- 通过使用命令提示符运行第一个Hibernate应用程序
一个简单的Persistent类应遵循一些规则:
- 一个无参数的构造函数:建议你具有一个默认的构造函数, 至少具有包可见性, 以便hibernate可以通过newInstance()方法创建Persistent类的实例。
- 提供标识符属性:最好将属性分配为id。此属性充当数据库中的主键。
- 声明getter和setter方法:默认情况下, Hibernate通过getter和setter方法名称识别该方法。
- 首选非最终类:Hibernate使用代理的概念, 该概念取决于持久类。应用程序程序员将无法使用代理进行懒惰的关联获取。
Employee.java
package com.srcmini.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)为Persistent类创建映射文件
映射文件的名称通常应为class_name.hbm.xml。映射文件有很多元素。
- hibernate-mapping:它是映射文件中包含所有映射元素的根元素。
- class:它是hibernate-mapping元素的子元素。它指定Persistent类。
- id:它是class的子元素。它指定类中的主键属性。
- generator:它是id的子元素。它用于生成主键。有许多生成器类, 例如已分配, 增量, hilo, 序列, 本机等。我们稍后将学习所有生成器类。
- property:它是类的子元素, 用于指定Persistent类的属性名称。
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="com.srcmini.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 com.srcmini.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文件。
下载Hibernate所需的jar文件
6)如何在没有IDE的情况下运行第一个Hibernate应用程序
我们可以通过IDE(例如Eclipse, Myeclipse, Netbeans等)或不使用IDE来运行该Hibernate应用程序。在下一章中, 我们将学习在Eclipse IDE中创建Hibernate应用程序的知识。
要在没有IDE的情况下运行Hibernate应用程序:
- 在此示例中安装oracle10g。
- 加载jar文件以使其Hibernate。 (加载jar文件的一种方法是将所有jar文件复制到JRE / lib / ext文件夹下)。最好将这些jar文件放在公共和私有JRE中。
- 现在, 通过java com.srcmini.mypackage.StoreData运行StoreData类
文章图片
推荐阅读
- 使用xml文件的每个具体类的表
- 在Eclipse中使用注解的Hibernate示例
- Hibernate教程
- 使用注解按层次结构Hibernate表
- 使用xml文件的每个层次结构的Hibernate表
- 使用XML文件通过Log4j进行Hibernate日志记录
- 使用属性文件通过Log4j进行Hibernate日志记录
- Hibernate继承映射教程
- Hibernate架构