本示例向您展示如何将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>