1、标准查询Criteria (主要应用于简单的查询)

     Session session=HibernateSessionFactory.getSession();Query query=null;Criteria criteria=session.createCriteria(Orders.class);criteria.addOrder(Order.desc("orderDate"));//按照日期字段进行升序排序List<Orders> lsod=criteria.list();for (Orders od : lsod) {System.out.println("订单编号:"+od.getOrderId());System.out.println("==================");}

2、HQL查询根据指定条件查询
注意:
所有HQL语句查询的都是实体类名,而不是表名,所有的条件都是对象的属性,而不是字段。
eg:from Orders where orderMode=? and orderTotal>?
Orders 为表映射的实体对象
orderMode、orderTotal为Orders 的属性

      // 查询订单信息,条件为订购模式为direct,订单金额大于10000元的订单信息String hql="from Orders where orderMode=? and orderTotal>? order by orderTotal";query=session.createQuery(hql);//设置查询参数query.setParameter(0, "direct");  //0表示第一个“?”query.setParameter(1, 10000.00);  //1表示第二个“?”List<Orders> lsod=query.list();for (Orders od : lsod) {System.out.println("订单编号:"+od.getOrderId());System.out.println("==================");}

3、hql–模糊查询

 //查询产品信息中产品名称包含HD的所有产品信息String hql="from ProductInformation where productName like ?";query=session.createQuery(hql);query.setParameter(0, "%HD%");List<ProductInformation> lspd=query.list();for (ProductInformation pd : lspd) {System.out.println("产品编号:"+pd.getProductId());System.out.println("============================");}

4、范围查询—between查询

//查询价格在100-200之间的产品信息String hql="from ProductInformation where listPrice between 100 and 200";query=session.createQuery(hql);List<ProductInformation> lspd=query.list();for (ProductInformation pd : lspd) {System.out.println("产品编号:"+pd.getProductId());System.out.println("============================");}

5、范围查询–in查询

  ```//查询国籍是CHINA\GERMANY\JAPAN的客户信息String hql="from Customers where nlsTerritory in (?,?,?)";query=session.createQuery(hql);query.setParameter(0, "CHINA");query.setParameter(1, "GERMANY");query.setParameter(2, "JAPAN");List<Customers> lscs=query.list();for (Customers cs : lscs) {System.out.println("客户编号:"+cs.getCustomerId());System.out.println("================================");}```

6、查询指定属性的值

     //只查询订单的编号、日期、金额和客户信息/* 查询返回的List集合,集合元素为对象数组,数组长度为选择属性的个数* 注意:当属行为对象类型,则放置在其他选择属性的最后*/String hql="select orderId,orderDate,orderTotal,customers from Orders";query=session.createQuery(hql);List<Object[]> lsobs=query.list();for (Object[] obs : lsobs) {System.out.println("订单编号:"+obs[0].toString());System.out.println("订单日期:"+obs[1].toString());System.out.println("订单客户:"+((Customers)obs[3]).getCustFirstName());   //订单实体的属性为客户实体System.out.println("订单金额:"+obs[2].toString());System.out.println("=====================================");}

7、查询前n条记录

//查询订单金额最高的前5条记录String hql="from Orders order by orderTotal desc";query=session.createQuery(hql);//只获取前5条记录query.setFirstResult(0);query.setMaxResults(5);List<Orders> lsod=query.list();for (Orders od : lsod) {System.out.println("订单编号:"+od.getOrderId());System.out.println("==================");}

8、分页查询

//按照每页5条记录查询订单表的数据String hql="from Orders where 1=1 order  by orderId";query=session.createQuery(hql);//如果存在查询条件,则先设置查询参数值,再分页System.out.println("================第1页=============");query.setFirstResult(0);//0=(page-1)*rowsquery.setMaxResults(5);//5=rowsList<Orders> lsod=query.list();for (Orders od : lsod) {System.out.println("订单编号:"+od.getOrderId());System.out.println("==================");}System.out.println("=====================================");//如果存在查询条件,则先设置查询参数值,再分页System.out.println("================第2页=============");query.setFirstResult(5);//0=(page-1)*rowsquery.setMaxResults(5);//5=rowslsod=query.list();for (Orders od : lsod) {System.out.println("订单编号:"+od.getOrderId());System.out.println("==================");}System.out.println("=====================================");

9、聚合函数count、max、min、avg、sum

     String hql="select min(orderTotal),max(orderTotal) from Orders";query=session.createQuery(hql);Object[] obs=(Object[]) query.uniqueResult();System.out.println("最低金额:"+obs[0].toString());System.out.println("最高金额:"+obs[1].toString());//获取订单的总记录数hql="select count(o) from Orders o";   //将实体Orders 别名为 o  等价于  hql="select count(*) from Orders ";  query=session.createQuery(hql);Object ob=query.uniqueResult();System.out.println("总记录数:"+ob.toString());

10、分组统计查询group by

 //统计每个客户的订单金额String hql="select customers.custFirstName,sum(orderTotal) from Orders " +" where 1=1 group by customers.custFirstName";query=session.createQuery(hql);List<Object[]> lsob=query.list();for (Object[] obs : lsob) {System.out.println("客户姓名:"+obs[0].toString());System.out.println("订单总金额:"+obs[1].toString());System.out.println("========================");}*/

11、子查询

* 查询价格最低的产品信息* String hql="from ProductInformation where listPrice =(select min(listPrice) from ProductInformation)";query=session.createQuery(hql);List<ProductInformation> lspd=query.list();for (ProductInformation pd : lspd) {System.out.println("产品编号:"+pd.getProductId());System.out.println("============================");}

12、外连接

/* 主要以主表对象属性的位置确定连接的方式,右外连接为主* 查询所有的客户信息和客户对应的订单信息,如果客户无订单信息则显示未购买!* String hql="select o,c from Orders o right join o.customers c";query=session.createQuery(hql);List<Object[]> lsobs=query.list();for (Object[] obs : lsobs) {Orders od=(Orders) obs[0];Customers cs=(Customers) obs[1];System.out.println("客户姓名:"+cs.getCustFirstName()+"."+cs.getCustLastName());if(od!=null){System.out.println("订单编号:"+od.getOrderId());System.out.println("==================");}else{System.out.println("未购买商品");}System.out.println("==============================================================");}

13、原生的sql查询,按照表明查询

     String sql="select * from oe.orders";SQLQuery sqlQuery=session.createSQLQuery(sql);sqlQuery.addEntity(Orders.class);List<Orders> lsod=sqlQuery.list();for (Orders od : lsod) {System.out.println("订单编号:"+od.getOrderId());System.out.println("==================");}

hibernate的HQL查询语句相关推荐

  1. hibernate的hql查询语句总结

    来自: http://www.cnblogs.com/xiaoluo501395377/p/3376256.html 转载于:https://www.cnblogs.com/rambo12932713 ...

  2. hibernate中的hql查询语句list查询所有与iterate查询所有的区别

    hibernate中的hql查询语句list查询所有与iterate查询所有的区别 list查询所有: 01,会立即产生一条select语句1select查询出来的所有语句都会被session管理, ...

  3. hql 字符串where语句_hibernate的hql查询语句总结

    4.3 使用HQL查询 Hibernate提供了异常强大的查询体系,使用Hibernate有多种查询方式.可以选择使用Hibernate的HQL查询,或者使用条件查询,甚至可以使用原生的SQL查询语句 ...

  4. Hibernate 笔记 HQL查询

    http://www.cnblogs.com/zilong882008/archive/2011/11/05/2237123.html Hibernate 笔记 HQL查询(一)单属性,多属性查询 H ...

  5. hql 字符串where语句_Hibernate HQL查询语句总结

    1. 实体查询: 有关实体查询技术,其实我们在先前已经有多次涉及,比如下面的例子: String hql="from User user "; List list=session. ...

  6. java hql多条件查询_JSP 开发之hibernate的hql查询多对多查询

    JSP 开发之hibernate的hql查询多对多查询 在hibernate的hql查询中,假如说分组信息与试题是多对多关系,那么我们要在hql查询中对含有多个分组信息的试题都要查询出来.并同时查询出 ...

  7. Hive基础09、HQL查询语句

    Hive基础09.HQL查询语句 目录 Hive基础08.HQL查询语句 1.基础查询语句 2.数组查询 3.map 4.struct 5.聚合查询语句 HQL查询内容全: 第一部分: Hive查询语 ...

  8. Hibernate(九)HQL查询

    一.Hibernate提供的查询方式 OID查询方式:主键查询.通过get()或者load()方法加载指定OID的对象查询结果为一个 HQL查询方式:通过Query接口使用HQL语言进行查询 QBC查 ...

  9. mysql hql查询语句_查询hql语句

    Hibernate-HQL 了解HQL 一.HQL定义 1.Hibernate QueryLanguage,Hibernate查询语言 2.HQL是面向对象的查询语言 3.HQL提供了丰富灵活的查询特 ...

最新文章

  1. 印度太阳能企业争取对中、台、马实施反倾销税
  2. echo -n 和echo -e 参数意义
  3. C++矩阵处理工具——Eigen
  4. c语言判断一个月有多少天程序,【0320】C语言编写的小程序,算算自己已经活了多少天...
  5. Shell脚本经典之Fork炸弹
  6. 八、图形与图像处理(2)
  7. 【Redis】 redis hash getKey getValue 两个的性能差别
  8. Ural_1586. Threeprime Numbers (DP)
  9. Oracle文件路径——.dbf与.ora
  10. 熊猫烧香病毒的分析报告
  11. 人力资源管理系统HRMS 天下三分 煮酒论英雄
  12. foreign 磁盘阵列_RAID组中的“Foreign”状态磁盘
  13. VS(visual studio)中使用ReportViewer控件和报表设计器 RDLC
  14. Python实现简繁体转换,现在的人玩得老花了
  15. 郑州轻工业大学oj平台 c语言 1008 美元和人民币的换算
  16. javascript - 字符串的操作
  17. 2.linux中tty、ttySn、ttyUSBn的区别及查看
  18. Python 习题 老虎、棒棒、鸡、虫
  19. 自从有了BI商业智能系统,再也不用担心我的作图了!!!(图文)
  20. Maven的配置、安装及测试可用

热门文章

  1. SQL删除指定条件的重复数据,只保留一条
  2. 3DSMAX 卸载工具,完美彻底卸载清除干净3dsmax各种残留注册表和文件
  3. ASP.NET 一文看懂repeater控件使用方法
  4. OpenPdf组件替换Itext方案
  5. 【软件推荐】Animcraft3.1版本发布!它会是解放动画师的效率神器吗?
  6. 不安装oracle数据库客户端,使用sqlplus
  7. android_真机调试_安装包解析失败
  8. 最新淘汰服务器cpu,英特尔将推13款服务器CPU 淘汰7种笔记本CPU
  9. 热血三国 mysql_热血三国Apache已启MySQL5.1已启动怎么还是不能进游戏
  10. bert4keras中预训练代码阅读