为了账号安全,请及时绑定邮箱和手机立即绑定

HQL数据查询基础

难度中级
时长 1小时41分
学习人数
综合评分9.77
301人评价 查看评价
9.9 内容实用
9.8 简洁易懂
9.6 逻辑清晰
  • HQL对关键字大小写不敏感

    查看全部
  • HQL语句面向对象的查询语句,面向持久化对象和属性,大小写敏感

    查看全部
  • 使用order by子句对查询结果进行排序

    • 升序 asc

    • 降序 desc

    "from Commodity order by price asc"
    "from Commodity order by seller.id asc,price desc,name asc"

    有多个排序条件时,优先级依次降低

    查看全部
    0 采集 收起 来源:orderby子句

    2019-04-06

  • 使用Query的uniqueResult方法查询结果是单个对象,但使用时必须确保,查询结果是1个或0个。

    查看全部
    0 采集 收起 来源:查询单个对象

    2019-04-06

  • 在where和select子句中可以使用四则运算 +  -  × ÷

    查看全部
    0 采集 收起 来源:四则运算

    2019-04-06

  • 集合运算 set 

    1. is [not] empty 集合[不]为空,不包含任何元素

    2. member of 元素属于集合

    HQL
    对应SQL
    emptyexists
    member ofin
    "from Order o where o.orderItems is not empty"


    查看全部
    0 采集 收起 来源:集合运算

    2019-04-06

  • 逻辑运算

    and (与)、 or(或) 、 not(非)

    查看全部
    0 采集 收起 来源:逻辑运算

    2019-04-06

  • 字符串模式匹配

    1. like 关键字

    2. 通配符 %、_   ( %表示任意个字符  _表示任意一个字符 )

    //匹配姓“张”,且名字总共只有2个字的
    "from Customer c where c.name like '张_'"
    //匹配“北京”,位置不固定
    "from Customer c where c.address like '%北京%'"


    查看全部
  • where子句中的范围运算

    1. [not] in ( 列表 )

    2. [not] between 值1  and  值2

    查看全部
    0 采集 收起 来源:范围运算

    2019-04-06

  • where子句中的比较运算符

    1. =、<>、 <、 >、 >=、 <=

    2. null值判断: is [not] null  或 <>null 、=null

    查看全部
    0 采集 收起 来源:比较运算

    2019-04-06

  • distinct关键字,去除查询结果中多余的重复元素。

    "select distinct c.sex from Customer c"


    查看全部
  • 以自定义类型返回查询结果:

    1、在持久类中定义对应参数的构造方法

    2、在select语句中使用构造方法

    String hql = "select new Seller(s.name as name,s.tel) from Seller s";		
    Query query = session.createQuery(hql);		
    List<Seller> sellers = query.list();		
    for (Seller s : sellers) {			
        System.out.println(s);					
    }

    注意:此时仍然需要定义无参的构造函数,否则“from Seller”将会失败。

    查看全部
  • 以Map形式返回查询结果:new map(...)

    Map的key是默认查询语句中对应的位置信息,但是String类型。

    可以通过别名的方式修改key。

    String hql = "select new map(s.name,s.tel) from Seller s";
    String hql = "select new map(s.name as name,s.tel) from Seller as s";
    Query query = session.createQuery(hql);		
    List<Map> maps = query.list();
    for (Map m : maps) {			
        System.out.println(m.get("0"));
        //System.out.println(m.get("name"));//使用别名
        ystem.out.println(m.get("1"));		
    }


    查看全部
  •  以List形式返回查询结果 : new list(...)

    String hql = "select new list(s.name,s.tel) from Seller s";

    查询结果:

    List<List> list = query.list();


    查看全部
  • HQL查询一个持久类中的部分字段:

    String hql = "select s.name,s.tel from Seller s";

    此时,查询结果为对象数组:

    List<Object[]> objs = query.list();

    注意:当仅指定一个字段时,返回的是对象而不是对象数组。

    查看全部

举报

0/150
提交
取消
课程须知
本课程是Hibernate进阶课程,需要小伙伴们了解Hibernate映射配置知识点,对这方面内容不了解的小伙伴们可以先去《 Hibernate初探之单表映射》进修一下~~
老师告诉你能学到什么?
1、什么是HQL,以及HQL的语句形式。 2、在Hibernate框架中如何执行HQL查询。 3、如何编写出正确的HQL查询语句,从数据库检索到我们想要的数据。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!