- Query对象查询
- Criteria对象查询
- SQLQuery对象查询
一、Query对象
- 使用query对象,不需要写SQL语句,但是需要些hql语句
- hql:hibernate query language,hibernate提供查询语言,hql语句和SQL语句很相似;
- hql和SQL语句的区别
- 使用SQL操作表和字段
- 使用hql操作实体类和属性
- 使用hql查询所有
- from 实体类名称
- Query对象的使用
- 创建Query对象;
- 调用Query对象中的方法查询结果
1 public void testQuery() { 2 SessionFactory sessionFactory = null; 3 Session session = null; 4 Transaction tx = null; 5 try { 6 sessionFactory = HibernateUtils.getSessionFactory(); 7 session =HibernateUtils.getCurrentSession(); 8 9 tx = session.beginTransaction(); 10 11 //1、创建query对象 12 Query query = session.createQuery("from User"); 13 //2.得到查询结果 14 List<User> list = query.list(); 15 for (User user : list) { 16 System.out.println(user); 17 } 18 tx.commit(); 19 20 }catch(Exception exception) { 21 exception.printStackTrace(); 22 tx.rollback(); 23 }finally { 24 25 } 26 }
二、Criteria对象
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 public void testCriteria() { 2 SessionFactory sessionFactory = null; 3 Session session = null; 4 Transaction tx = null; 5 try { 6 sessionFactory = HibernateUtils.getSessionFactory(); 7 session =HibernateUtils.getCurrentSession(); 8 9 tx = session.beginTransaction(); 10 11 //创建criteria对象 12 Criteria criteria = session.createCriteria(User.class); 13 List<User> list = criteria.list(); 14 15 for (User user : list) { 16 System.out.println(user); 17 } 18 tx.commit(); 19 20 }catch(Exception exception) { 21 exception.printStackTrace(); 22 tx.rollback(); 23 }finally { 24 25 } 26 }
三、SQLQuery对象
- 在使用hibernate的SQLquery对象时调用底层sql来实现功能;
- 实现过程
- 创建对象
- 调用对象的方法
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 public void testSqlQuery() { 2 SessionFactory sessionFactory = null; 3 Session session = null; 4 Transaction tx = null; 5 try { 6 sessionFactory = HibernateUtils.getSessionFactory(); 7 session =HibernateUtils.getCurrentSession(); 8 9 tx = session.beginTransaction(); 10 11 //创建criteria对象 12 SQLQuery sqlQuery = session.createSQLQuery("select * from tab_users"); 13 14 /*List<Object[]> list = sqlQuery.list(); 15 16 for (Object[] object : list) { 17 System.out.println(Arrays.toString(object)); 18 }*/ 19 20 sqlQuery.addEntity(User.class); 21 List<User> list = sqlQuery.list(); 22 for (User user : list) { 23 System.out.println(list); 24 } 25 tx.commit(); 26 27 }catch(Exception exception) { 28 exception.printStackTrace(); 29 tx.rollback(); 30 }finally { 31 32 } 33 }
*********************** KISPINE ***********************