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

HQL数据查询基础

难度中级
时长 1小时41分
学习人数
综合评分9.77
301人评价 查看评价
9.9 内容实用
9.8 简洁易懂
9.6 逻辑清晰
  • 限制—where子句 1.比较运算 2.范围运算 3.字符串模式匹配 4.逻辑运算 5.集合运算 6.在HQL中使用+、-、*、/运算符 7.查询单个对象(uniqueResult方法)
    查看全部
    0 采集 收起 来源:本章内容简介

    2017-08-28

  • String hql="select distinct c.sex from Customer c"; 注:1、distinct使用时只能放在查询语句的第一个字段前面,且只对查询单个字段才有过滤效果。 2、如果查询语句中包含多个字段时,那么distinct将不再具有过滤功能,但运行也不会报错。 3、如果distinct没有放在查询语句的第一个字段前面, 或语句存在多个distinct,运行会出错。
    查看全部
  • distinct关键字 去掉重复的元素
    查看全部
  • select子句--以自定义类型返回 以自定义类型返回数据 1.在持久类中先创建自定义构造器 例如 public Sellers(String name,String address){ this.name=name; this.address=address; } 2.在 hql中 select new Seller(s.name,s.address) from Seller s 3创建List集合 List<Seller> sellers=query.list(); for(Sellers selle:sellers){ 输出自己想要的字段(构造器中定义的) }
    查看全部
  • select子句--以自定义类型返回
    查看全部
  • select子句--以Map形式返回 * 以new map(s.name,s.tel,s.address) from 持久化的实体类; * key值为索引值,为字符串类型,"0","1"等; * 若在map中使用了别名:(s.name as n,s.tel as t,s.address as a) 就可以使用map.get(别名)。这是as关键字是必须的。
    查看全部
  • 以Object[]形式返回选择的属性 1.select子句中未指定返回数据类型,默认为Object[] HQL的select查询语句中,如果指定了多个查询字段,则返回的是一个Object[]数组;如果只指定了一个查询字段,则返回的是一个Object对象。 e.g. public void testSelect(){ String hql="select s.name,s.tel,s.address from Seller s"; Query query=session.createQuery(hql); List<Object[]> lists=query.list(); for (Object[] list : lists) { System.out.println("name:"+list[0]); System.out.println("tel:"+list[1]); System.out.println("address"+list[2]); } } //如果是单个查询字段的话就只需要把上面的Object[]中的[]去掉,打印输出时不需要指明下标
    查看全部
  • 选择—select子句 1.以Object[]形式返回选择的属性: 2.以List形式返回选择的属性 3.以map形式返回选择的属性 4.以自定义类型返回选择的属性 5.获取独特的结果-distinct关键字
    查看全部
    0 采集 收起 来源:本章内容简介

    2017-08-28

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

    2017-08-28

  • from子句: 1.HQL语句最简形式 2.from子句指定HQL语句查询主体--持久化类及其属性, 如果只有from子句,则查询该类对应的数据库中表的所有信息 返回的是该对象的集合
    查看全部
  • HQL语句中可以直接使用"from 类名"就可以查询到此类对应数据库表中的所有信息.不需要像sql那样"select*from 表名",直接"form 类名"即可. list()方法返回的是HQL语句所查询的类的持久化对象的集合.所以一般定义一个带泛型的List集合来存储. Query query=session.createQuery("from Student"); List<Student> list=query.list(); for(List l:list){ System.out.println(l); } 注意:HQL是面向对象的查询,查询的是类,不像sql一样,直接查询表.因此在from 后面加的是类名(注意大小写).list()方法会根据查询的类名然后去映射文件中找到相应的数据库表,此时便把HQL语句解析成sql语句.再查询到相应的记录,最后返回记录的持久化对象的集合. 对于Hiberante5.2.4,query.list()方法已经弃用: public class SelletTest { private Session session; private Transaction transaction; @Before public void setUp() { session = HibernateSessionFactory.openSession(); transaction=session.beginTransaction(); } @Test public void selletTest() { String hql = "from Seller"; Query query = session.createQuery(hql, Seller.class); // 注:hibernate5.2.4已经弃用了query.list()方法 List<Seller> sellers = query.getResultList(); for (Seller seller : sellers) { System.out.println(seller); } } @After public void destroy(){ } })
    查看全部
  • Query执行查询
    查看全部
    0 采集 收起 来源:Query接口简介

    2017-08-27

举报

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

微信扫码,参与3人拼团

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

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