• Hibernate学习笔记(5)---Query接口


    Hibernate中具有三种检索方式(HQL,QBC,SQL)

    Query接口

    一个查询接口,用于向数据库中查询对象。并控制执行查询的过程。Query接口内封装了一个HQL查询语句。

    举个栗子

    //查询持久化类user

    Session session = sessionFactory.openSession(); //创建session实例
    String hql ="from user as u where age>18";    //HQL语句,as别名可以省略不写
    Query query = session.createQuery(hql);//创建query实例
    List users = query.list();// 返回list集合

      HQL运算符大致上与SQL的相似

    = 等于 <> 不等于
    > 大于 < 小于
    >= 大于等于 <= 小于等于
    is null 值为空 is not unll 值不为空
    in 等于列表中的某一个值 no in 不等于列表中的某一个值
    between 在两个值之间 no between 不在两个值之间
    like 字符串匹配 and 逻辑与
    or 逻辑或 not 逻辑非

    查询所有

       from+实体类名

    Query query =session.createQuery(from User);
    Liset<User> list = query.list();
    

      

    条件查询

    from +实体类名 +where 实体类名属性名 ?

    Query query =session.createQuery(from User u where u.id=? and u.name=?);
    query.setParameter(1,5);
    query.setParameter(2,"小明");//向问号里面设置值,有几个问号设置几个
    List<User> list = query.list();

    排序查询

    from 实体类 order by 实体类属性 asc(升)或者desc(降)

    分页查询

    mysql实现分页 limit关键字,而在hql中语句中不能写limit所有我们得用hibernate的query对象封装的两个类实现分页

    Query query = session.createQuery(User);
    //设置开始位置
    query.setFirstResult(0);
    //设置结束位置
    query.setMaxResults(3);

    投影查询

    select 实体类属性名 1 ,实体类名2   from +实体类名

    聚集函数查询

    聚集函数 count记录数  , sum 相加, avg 平均, max  最大 ,min  最小 

    select count(*) from 实体类名

    更新

    使用executeUodate()方法

    String hql ="update User set age=23 where age = 20"
    Query query = session.createQuery(hql);
    query.executeUpdate();

    删除

    通过使用executeUodate()方法也可以实现删除

    String hql ="delete from User where age 20"
    Query query = session.createQuery(hql);
    query.executeUpdate();
    

      ps:HQL语句它采用的面向对象的查询方式,并提供了丰富和灵活的查询特征,hibernate中将HQL作为官方推荐的标准查询方式。

    下节:另外一种数据查询接口-----Criteria接口(QBC)

  • 相关阅读:
    WHU 1572 Cyy and Fzz (AC自动机 dp )
    Codeforces 441D Valera and Swaps(置换群)
    Codeforces 527E Data Center Drama(欧拉回路)
    差分约束小结
    Codeforces 193D Two Segments 解题报告
    SGU 231.Prime Sum
    SGU 249.Matrix(Gray码)
    SGU 222.Little Rooks
    SGU 207.Robbers
    risc-v的寻址模式
  • 原文地址:https://www.cnblogs.com/durui/p/7587997.html
Copyright © 2020-2023  润新知