在如何在休眠中存储对象?示例,您将看到如何将对象存储到数据库中。在此示例中,我们将扩展LabelManager类并添加从数据库获取或查询对象的功能。
package org.nhooo.example.hibernate.app; import org.hibernate.Session; import org.nhooo.example.hibernate.model.Label; public class LabelManager { public Label getLabel(Long id) { Session session = SessionFactoryHelper.getSessionFactory().getCurrentSession(); session.beginTransaction(); // 我们通过调用Session从数据库取回Label对象 // object get()方法并传递对象类型和对象 // 要读取的ID。 Label label = session.get(Label.class, id); session.getTransaction().commit(); return label; } 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; public class LoadDemo { public static void main(String[] args) { // 创建LabelManager的实例。 LabelManager manager = new LabelManager(); // 我们将getLabel()方法称为传递标签ID以加载它 // 从数据库中打印出标签字符串。 Label label = manager.getLabel(1L); System.out.println("label = " + label); } }
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>