我是Hibernate和Spring的新手。 我正在尝试使用Hibernate Framework访问Mysql中的数据。但我感到困惑使用哪个类来检索对象。 让我举个例子。我在一些在线教程和网站中找到
1。使用 HibernateTemplate 作为访问数据的界面
使用持久性
EntityManagerFactory entityManagerFactory = Persistence
.createEntityManagerFactory("pl.edu.bogdan.training.db.entity");
EntityManager em = entityManagerFactory.createEntityManager();
使用 SessionFactory
package com.journaldev.dao;
import java.util.List;
import org.hibernate.*;
import com.journaldev.model.Person;
public class PersonDAOImpl implements PersonDAO {
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
@Override
public void save(Person p) {
Session session = this.sessionFactory.openSession();
Transaction tx = session.beginTransaction();
session.persist(p);
tx.commit();
session.close();
}}
您能以正确的方式指导我吗?谢谢
答案 0 :(得分:0)
它们几乎等效,这时唯一的区别是访问数据所需编写的代码量。
此外,您可能需要微调您的查询。例如,使用Transaction tx = session.beginTransaction();
可以帮助您控制在事务中发生哪些数据操作/查询,从而使您与数据库的连接保持的时间不会太长。如果只需要保存某些实体,则最好用@Transactional
注释bean的方法。