通过Hibernate从数据库检索数据的方法

时间:2019-02-26 20:44:01

标签: java spring hibernate

我是Hibernate和Spring的新手。 我正在尝试使用Hibernate Framework访问Mysql中的数据。但我感到困惑使用哪个类来检索对象。 让我举个例子。我在一些在线教程和网站中找到

1。使用 HibernateTemplate 作为访问数据的界面

  1. 使用持久性

    EntityManagerFactory entityManagerFactory = Persistence
        .createEntityManagerFactory("pl.edu.bogdan.training.db.entity");
    EntityManager em = entityManagerFactory.createEntityManager();
    
  2. 使用 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();
    }}
    

您能以正确的方式指导我吗?谢谢

1 个答案:

答案 0 :(得分:0)

它们几乎等效,这时唯一的区别是访问数据所需编写的代码量。

此外,您可能需要微调您的查询。例如,使用Transaction tx = session.beginTransaction();可以帮助您控制在事务中发生哪些数据操作/查询,从而使您与数据库的连接保持的时间不会太长。如果只需要保存某些实体,则最好用@Transactional注释bean的方法。