Java如何在Hibernate中存储对象?
本示例向您展示如何将Hibernate对象存储或保存到数据库。在Hibernate中创建应用程序的基本步骤将是:
创建POJO
创建Hibernate映射文件
在Hibernate配置中注册映射文件
创建一个简单的经理类来存储对象
在这个例子中,我们将创建一个名为Labelclass的类,这个类与唱片公司有关。这个类有id,name,created和modified属性。他们为了种类有Integer,String,java.util.Date和java.util.Date。
Hibernate是一种对象关系映射技术,它基本上意味着将对象映射到关系数据库模型的方式。因此,它需要一个映射文件将对象属性映射到表列。映射文件通常以的格式Label.hbm.xml命名,hbm.xml后缀为类名。为了使Hibernate应用程序识别该对象,映射文件应在Hibernate配置hibernate.cfg.xml文件中注册。
我们简要介绍了Hibernate类和配置结构。让我们跳过工作示例。首先,我们创建映射文件,然后创建类。
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="org.nhooo.example.hibernate.model.Label" table="labels">
<id name="id" column="id">
<generator/>
</id>
<property name="name" not-null="true"/>
<property name="created" column="created" type="timestamp"/>
<property name="modified" column="modified" type="timestamp"/>
</class>
</hibernate-mapping>package org.nhooo.example.hibernate.model;
import java.util.Date;
public class Label {
private Long id;
private String name;
private Date created;
private Date modified;
// Getters & Setters
@Override
public String toString() {
return "Label{" +
"id=" + id +
", name='" + name + '\'' +
", created=" + created +
", modified=" + modified +
'}';
}
}package org.nhooo.example.hibernate.app;
import org.hibernate.Session;
import org.nhooo.example.hibernate.model.Label;
public class LabelManager {
public void saveLabel(Label label) {
//为了保存对象,我们首先通过调用
//SessionFactoryHelper类中的getCurrentSession()方法。
//接下来,我们创建一个新事务,保存Label对象,然后
//提交到数据库,
Session session = SessionFactoryHelper.getSessionFactory()
.getCurrentSession();
session.beginTransaction();
session.save(label);
session.getTransaction().commit();
}
}package org.nhooo.example.hibernate.app;
import org.nhooo.example.hibernate.model.Label;
import java.util.Date;
public class InsertDemo {
public static void main(String[] args) {
LabelManager manager = new LabelManager();
//创建一个我们要存储在数据库中的Label对象。
//我们设置名称,修改日期和修改日期信息。
Label label = new Label();
label.setName("Sony Music");
label.setCreated(new Date());
//调用LabelManagersaveLabel方法。
manager.saveLabel(label);
}
}我们已经完成了代码和映射文件。要将映射文件注册到Hibernate配置文件中,可以看到如何创建Hibernate的SessionFactory?例。该示例还告诉您如何创建SessionFactoryHelper类以获取Hibernate的类SessionFactory。
Maven依赖
<dependencies>
<!--https://search.maven.org/remotecontent?filepath=org/hibernate/hibernate-core/5.4.1.Final/hibernate-core-5.4.1.Final.jar-->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.4.1.Final</version>
</dependency>
<!--https://search.maven.org/remotecontent?filepath=org/hibernate/hibernate-ehcache/5.4.1.Final/hibernate-ehcache-5.4.1.Final.jar-->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-ehcache</artifactId>
<version>5.4.1.Final</version>
</dependency>
<!--https://search.maven.org/remotecontent?filepath=mysql/mysql-connector-java/5.1.47/mysql-connector-java-5.1.47.jar-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
</dependencies>