Hibernate中的Query对象查询所有记录

映射文件,核心文件,实体类,工具类的内容都不变直接看测试方法中的代码:

 1 package com.yinfu.test;
 2 
 3 
 4 import java.util.List;
 5 
 6 import org.hibernate.Query;
 7 import org.hibernate.Session;
 8 import org.hibernate.SessionFactory;
 9 import org.hibernate.Transaction;
10 import org.junit.Test;
11 
12 import com.yinfu.entity.User;
13 import com.yinfu.utils.HibernateUtils;
14 
15 public class HibernateQueryTest {
16 
17     @Test
18     public void queryTest() {
19         SessionFactory sessionFactory = null;
20         Session session = null;
21         Transaction tx = null;
22         try {
23             sessionFactory = HibernateUtils.getSessionFactory();
24             session = sessionFactory.openSession();
25             tx = session.beginTransaction();
26             
27             //1:创建query对象,方法里面写hql语句
28             Query query = session.createQuery("from User");
29             //2:利用query对象中的方法得到结果
30             List<User> list = query.list();
31             System.out.println(list);
32             
33             tx.commit();
34         } catch (Exception e) {
35             e.printStackTrace();
36             tx.rollback();
37         }finally{
38             session.close();
39             sessionFactory.close();
40         }
41     }
42 
43 }
QueryTest

输出结果:

映射文件,核心文件,实体类,工具类的内容都不变直接看测试方法中的代码:

 1 package com.yinfu.test;
 2 
 3 
 4 import java.util.List;
 5 
 6 import org.hibernate.Criteria;
 7 import org.hibernate.Query;
 8 import org.hibernate.Session;
 9 import org.hibernate.SessionFactory;
10 import org.hibernate.Transaction;
11 import org.junit.Test;
12 
13 import com.yinfu.entity.User;
14 import com.yinfu.utils.HibernateUtils;
15 
16 public class HibernateQueryTest {
17 
18     @Test
19     public void criteriaTest() {
20         SessionFactory sessionFactory = null;
21         Session session = null;
22         Transaction tx = null;
23         try {
24             sessionFactory = HibernateUtils.getSessionFactory();
25             session = sessionFactory.openSession();
26             tx = session.beginTransaction();
27             
28             //1:创建query对象,方法里面实体类class
29             Criteria criteria = session.createCriteria(User.class);
30             //2:利用query对象中的方法得到结果
31             List<User> list = criteria.list();
32             System.out.println(list);
33             
34             tx.commit();
35         } catch (Exception e) {
36             e.printStackTrace();
37             tx.rollback();
38         }finally{
39             session.close();
40             sessionFactory.close();
41         }
42     }
43 
44 }
CriteriaTest

输出结果:

映射文件,核心文件,实体类,工具类的内容都不变直接看测试方法中的代码:(这样输出的默认是数组型集合,不是对象型集合)

 1 package com.yinfu.test;
 2 
 3 
 4 import java.util.List;
 5 
 6 import org.hibernate.Criteria;
 7 import org.hibernate.Query;
 8 import org.hibernate.SQLQuery;
 9 import org.hibernate.Session;
10 import org.hibernate.SessionFactory;
11 import org.hibernate.Transaction;
12 import org.junit.Test;
13 
14 import com.yinfu.entity.User;
15 import com.yinfu.utils.HibernateUtils;
16 
17 public class HibernateQueryTest {
18 
19     @Test
20     public void sqlQueryTest() {
21         SessionFactory sessionFactory = null;
22         Session session = null;
23         Transaction tx = null;
24         try {
25             sessionFactory = HibernateUtils.getSessionFactory();
26             session = sessionFactory.openSession();
27             tx = session.beginTransaction();
28             
29             //1:创建query对象,方法里面是普通的SQL语句
30             SQLQuery sqlQuery = session.createSQLQuery("select * from t_user");
31             //2:利用sqlQuery对象中的方法得到结果
32             //返回list对象,默认list中的每部分都是数组结构
33             List list = sqlQuery.list();
34             System.out.println(list);
35             
36             tx.commit();
37         } catch (Exception e) {
38             e.printStackTrace();
39             tx.rollback();
40         }finally{
41             session.close();
42             sessionFactory.close();
43         }
44     }
45 
46 }
sqlQueryTest

此时的结果是:

装换成对象型集合:

 1 package com.yinfu.test;
 2 
 3 
 4 import java.util.List;
 5 
 6 import org.hibernate.Criteria;
 7 import org.hibernate.Query;
 8 import org.hibernate.SQLQuery;
 9 import org.hibernate.Session;
10 import org.hibernate.SessionFactory;
11 import org.hibernate.Transaction;
12 import org.junit.Test;
13 
14 import com.yinfu.entity.User;
15 import com.yinfu.utils.HibernateUtils;
16 
17 public class HibernateQueryTest {
18 
19     @Test
20     public void sqlQueryTest() {
21         SessionFactory sessionFactory = null;
22         Session session = null;
23         Transaction tx = null;
24         try {
25             sessionFactory = HibernateUtils.getSessionFactory();
26             session = sessionFactory.openSession();
27             tx = session.beginTransaction();
28             
29             //1:创建query对象,方法里面是普通的SQL语句
30             SQLQuery sqlQuery = session.createSQLQuery("select * from t_user");
31             //2:设置数据放到哪个对象中去
32             sqlQuery.addEntity(User.class);
33             //3:利用sqlQuery对象中的方法得到结果
34             //返回list对象,默认list中的每部分都是数组结构
35             List<User> list = sqlQuery.list();
36             System.out.println(list);
37             
38             tx.commit();
39         } catch (Exception e) {
40             e.printStackTrace();
41             tx.rollback();
42         }finally{
43             session.close();
44             sessionFactory.close();
45         }
46     }
47 
48 }
sqlQueryTest

输出结果:

原文地址:https://www.cnblogs.com/lubolin/p/7766499.html