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

HQL数据查询基础

难度中级
时长 1小时41分
学习人数
综合评分9.77
301人评价 查看评价
9.9 内容实用
9.8 简洁易懂
9.6 逻辑清晰
  • s null 和 = null在HQL中是相同的 is not null 和 <>null 也是相同语义!! 【但!在SQL中不能使用=null,以及<>null】
    查看全部
    0 采集 收起 来源:null值判断运算

    2018-03-22

  • 比较运算符 HQL中的x=null会被解析为SQL中的x is null、x<>null会被解析为SQL中的x is not null
    查看全部
    0 采集 收起 来源:比较运算

    2018-03-22

  • 获取独特的结果-distinct关键字 distinct关键字 消除查询过程中重复的元素 String hql="select distinct c.sex from Customer c";
    查看全部
  • 增加自定义构造器,一定要补充默认构造器,否则hql=" from classname" 会出错,因为,在Hibernate没有指定的查询的放回集合时候,Hibernate会自动去找默认构造器
    查看全部
  • 以自定义方法返回
    查看全部
  • 以Map形式返回 1.select子句中使用new map指定 2.key值为索引值,字符串类型,如果给查询字段指定了别名,则以该别名为key的值 注:使用Map集合时考虑使用字段的别名获取属性信息,这样相对于序号不容易犯错哦
    查看全部
  • HQL查询只提供了List,Map,Object[]来返回自己需要的查询结果
    查看全部
  • hql中查询一个字段 返回的是List<Object>对象,查询多个字段返回的是List<Object[]>,查询所有字段返回的是List<实体类>对象,建议多使用别名来区分不同表中的相同字段 String hql="select s.name,s.tel,s.address,s.star from Seller s "; Query query=session.createQuery(hql); List<Object[]> list=query.list(); for (Object[] objects : list) { System.out.println(" name : "+objects[0]); System.out.println(" tel : "+objects[1]); System.out.println(" address : "+objects[2]); System.out.println(" star : "+objects[3]); System.out.println(""); }
    查看全部
  • 选择-select子句 1.以Object[]形式返回选择的属性: 注意:hql的select查询语句中,如果指定了多个查询字段,则返回的是一个Object[]数组,然而如果只指定了一个查询字段,则返回的是一个Object对象。 String hql = "select s.name,s.tel,s.address from Seller s"; Query query = session.createQuery(hql); List<Object[]> sellers = query.list(); for(Object[] objs:sellers){ System.out.println("name:"+objs[0]); System.out.println("tel:"+objs[1]); System.out.println("address:"+objs[2]); }(如果是单个查询字段的话就只需要把上面的Object[]中的[]去掉,打印输出时不需要指明下标) 2.以List形式返回选择的属性 String hql = "select new list(s.name,s.tel,s.address) from Seller s"; 3.以map形式返回选择的属性 注意:key为索引值,是字符串类型(map.get("0")),使用Map集合时考虑使用别名获取属性信息 String hql = "select new map(s.name,s.tel,s.address) from Seller s"; 4.以自定义类型返回选择的属性 (1)持久化类中定义对应的构造器 (2)select子句中调用定义的构造器 注意:默认构造器是需要的,因为,在Hibernate没有指定的查询的放回集合时候,Hibernate会自动去找默认构造器,如果不存在,则会出现异常 String hql = "select new Seller(s.name,s.tel,s.address) from Seller s"; 5.获取独特的结果-distinct关键字 distinct关键字 消除查询过程中重复的元素 String hql = "select distinct s.sex from Seller s";
    查看全部
    1 采集 收起 来源:本章内容简介

    2018-03-22

  • from子句中持久化类的引用: 1、不需要引入持久化类的全限定名(如from com.imooc.model.Seller),直接引入类名(from Seller)即可 2、我们知道在java环境中一定要指明全限定名,这样java环境才知道去获取这个类,而HQL语句中之所以可以省略,是因为auto-import自动引入缺省情况。hibernate框架中,在解析HQL语句时,会根据映射配置信息自动完成持久化类的导入,这样的方式更加方便,也更加符合程序员的编程习惯。 3、在from子句中全限定名的引用与直接引入类名是一样,并不会报错!
    查看全部
  • from子句: from子句是HQL语句的最简形式,换句话说,HQL语句只需要from子句就可以执行查询了,这是为什么呢? 这是因为from子句指定了HQL语句查询的主体----映射配置的持久化类及其属性,当我们编写的HQL语句只有from子句的时候,HQL框架默认就是查询该持久化类的所有实例以及该持久化类映射配置的信息,当HQL框架将HQL解析成SQL时,就会查询该持久化类映射的数据表中的所有映射字段信息,并将返回的查询结果封装成该持久化类的list集合
    查看全部
  • 第二题
    查看全部
    0 采集 收起 来源:课程总结

    2017-01-12

  • 第一题
    查看全部
    0 采集 收起 来源:课程总结

    2017-01-12

  • HQL是面向对象的查询,查询的目标是持久化类及其属性, 注意持久化类名和属性名的大小写。 HQL语句的关键字随便大小写,为了方便所以小写。
    查看全部
    0 采集 收起 来源:课程总结

    2017-01-12

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

    2017-01-12

举报

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

微信扫码,参与3人拼团

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

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