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());

        // 调用LabelManager saveLabel方法。
        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>

Maven中央
Maven中央