Hibernate提供的多种查询方式

来源:互联网 发布:淘宝店家开通蚂蚁花呗 编辑:程序博客网 时间:2024/05/17 05:08

注意:每种查询方式又含有多种重载的方法,这里只列出基础的一种。

Hibernate提供了多种查询方式:

  1. Hibernate查询方式一:get查询
  2. Hibernate查询方式二:load延迟加载
  3. Hibernate查询方式三:HQL之createQuery,返回多条数据
  4. Hibernate查询方式四:createCriteria查询,返回多条数据
  5. Hibernate查询方式五:HQL之createSQLQuery,根据SQL语句返回数据
package com.ckinghan.test;import java.util.List;import org.hibernate.Criteria;import org.hibernate.Query;import org.hibernate.SQLQuery;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import org.hibernate.classic.Session;import org.junit.Test;import com.ckinghan.bean.User;/** * Hibernate提供了多种查询方式 * @author ckinghan */public class HibernateQueryTest {    /**     * Hibernate查询方式一:get     */    @Test    public void HibernateGetQuery(){        Configuration configuration = new Configuration().configure();        SessionFactory buildSessionFactory = configuration.buildSessionFactory();        Session currentSession = buildSessionFactory.getCurrentSession();        Transaction transaction = currentSession.beginTransaction();        Object object = currentSession.get(User.class, 1);        if(object != null && !"".equals(object)){            User user = (User) object;            System.out.println(user);        }        transaction.commit();        buildSessionFactory.close();    }    /**     * Hibernate查询方式二:load延迟加载     */    @Test    public void hibernateLoadQuery(){        Configuration configuration = new Configuration().configure();        SessionFactory buildSessionFactory = configuration.buildSessionFactory();        Session currentSession = buildSessionFactory.getCurrentSession();        Transaction transaction = currentSession.beginTransaction();        Object load = currentSession.load(User.class, 1);        if(load != null && !"".equals(load)){            User user = (User) load;            System.out.println(user);        }        transaction.commit();        buildSessionFactory.close();    }    /**     * Hibernate查询方式三:HQL之createQuery,返回多条数据     */    @Test    public void hibernateHqlQuery(){        Configuration configuration = new Configuration().configure();        SessionFactory buildSessionFactory = configuration.buildSessionFactory();        Session currentSession = buildSessionFactory.getCurrentSession();        Transaction transaction = currentSession.beginTransaction();        //注意:这里传的参数中的User是实体类名        Query createQuery = currentSession.createQuery("from User");        //通过Query类中的list()方法返回list结果集        List<User> users = createQuery.list();        System.out.println(users);        transaction.commit();        buildSessionFactory.close();    }    /**     * Hibernate查询方式四:createCriteria查询,返回多条数据     */    @Test    public void hibernateCriteriaQuery(){        Configuration configuration = new Configuration().configure();        SessionFactory buildSessionFactory = configuration.buildSessionFactory();        Session currentSession = buildSessionFactory.getCurrentSession();        Transaction transaction = currentSession.beginTransaction();        //通过实体类,将对应的数据库表中的数据全部返回        Criteria createCriteria = currentSession.createCriteria(User.class);        //通过Criteria类提供的list()方法将数据转换为List<User>类型        List<User> list = createCriteria.list();        System.out.println(list);        transaction.commit();        buildSessionFactory.close();    }    /**     * Hibernate查询方式五:HQL之createSQLQuery,根据SQL语句返回数据     */    @Test    public void hibernateHqlCreateSqlQuery(){        Configuration configuration = new Configuration().configure();        SessionFactory buildSessionFactory = configuration.buildSessionFactory();        Session currentSession = buildSessionFactory.getCurrentSession();        Transaction transaction = currentSession.beginTransaction();        //传入要查询的SQL语句         SQLQuery query = currentSession.createSQLQuery("select * from user");        //将查询到的数据封装到User实体中        query.addEntity(User.class);        //通过Query的list()方法,返回List<User>        List<User> list = query.list();        System.out.println(list);        transaction.commit();        buildSessionFactory.close();    }}
原创粉丝点击