ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Hibernate查询——HQL,包括分页查询

2021-06-14 20:32:48  阅读:172  来源: 互联网

标签:Customer Hibernate list System 查询 session HQL println query


Hibernate查询——HQL,包括分页查询
hql:HibernateQueryLanguage提供一种查询语言。和sql相似
区别:sql操作数据库表和字段,hql操作实体类和属性

常用的hql语句
使用hql查询操作的时候,使用Query对象
hql查询使用步骤
(1):创建Query对象,写hql语句
(2):调用query对象里面的方法得到结果
分类:
1、条件查询

		Query query=session.createQuery("from Customer wher cid=? and custName=?");
		query.setParameter(0, 1);
		query.setParameter(1, "zlj");
		java.util.List<Customer> list=query.list();
		for (Customer customer : list) {
				System.out.println(customer);
			}

2、升降序查询


	Query query=session.createQuery("from Customer order by cid asc");
	java.util.List<Customer> list=query.list();
	for (Customer customer : list) {
			System.out.println(customer);
		}

3、查询所有数据

	Query query=session.createQuery("from Customer");
	java.util.List<Customer> list=query.list();
	for (Customer customer : list) {
		System.out.println(customer);
		}

4、投影查询

		Query query=session.createQuery("select cid,custname from Customer");
		java.util.List<Customer> list=query.list();
		for (Customer customer : list) {
				System.out.println(customer);
			}

5、聚集函数
常用的聚集函数

count,sum,avg,max,min

		Query query=session.createQuery(" select count(*) from Customer ");
	    Object object=query.uniqueResult();
		System.out.println(object);

6、重点来了(重点)

public void testcxfenyeQueryUser(int pageSize) {
				SessionFactory sf = HibernateUtil.getSessionFactory();
		        Session session = sf.getCurrentSession();// 3、打开Session
		        Transaction ts = null;
		        try{
		            ts = session.beginTransaction();// 4、开始一个事务
		            // 5、持久化操作
		            Query query = session.createQuery("from User");
		            List<User> users = query.list();
		            int UserCount = users.size();
		            int pageCount = 0;
		            pageCount = UserCount/pageSize;
		            if(UserCount % pageSize != 0) {
		            	pageCount = pageCount+1;
		            }
		            for(int i =0; i< pageCount; i ++) {
		            	System.out.println("第"+ i + "页:");
		            	System.out.println("--------------------");
		            	query.setFirstResult(i*pageSize);
		            	query.setMaxResults(pageSize);
		            	List<User> users1 = query.getResultList();
		            	for(User u: users1) {
			            	System.out.println(u.toString());
			            }
		            }
		            
		            ts.commit();// 6、 提交事务
		        }catch(Exception e){
		            if (ts != null){ ts.rollback();}
		            e.printStackTrace();
		        }
			}

然后调用方法 运行代码:

结果:
在这里插入图片描述

标签:Customer,Hibernate,list,System,查询,session,HQL,println,query
来源: https://blog.csdn.net/weixin_46249197/article/details/117912152

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有