zoukankan      html  css  js  c++  java
  • 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)

  • 相关阅读:
    重载和重写的定义
    方法的重载与重写有什么区别?
    java: while 和do while区别
    java中的运算符
    java 8种基本数据类型
    java.面向对象特征
    java语言的特点
    java.注释类型
    char 和 varchar2 区别
    使用sql对数据库进行简单的增删改查
  • 原文地址:https://www.cnblogs.com/durui/p/7587997.html
Copyright © 2011-2022 走看看