• Hibernate【HQL查询】


    一,"from (类名称)"

        类名称:持久化类的配置文件(*.hbm.xml)中,<class name="..">中name的值

        使用:Query query=session.createQuery("from domain.Student");

        效果:把数据库中Student对应的表 中数据全部提取出来

       

    二,"select (属性名称) from (类名称)"

        属性名称:持久化类的配置文件(*.hbm.xml)中,<property name="..">中name的值

        类名称:持久化类的配置文件(*.hbm.xml)中,<class name="..">中name的值

        使用:select name from domain.Student

        效果:获取表中的某一字段的所有值,注意获取的类型对应表中数据的类型,如果表中字段类型为varchar,那么获取到的类型就是String,如果表中字段为int,获取的类型就是Integer

      

      (2.1)  “select (属性名称,属性名称, ...) from (类名称)”  

       

      ps:可以看出,把每一条记录都封装成了一个Object[] 类型的对象

      那么获取当然需要这样了:

      

    三,“select new (构造函数) from 类名称” (弥补了2.1中O bject[]类型操作的不便利性)

        构造函数:持久类中的构造函数

        类名称:持久化类的配置文件(*.hbm.xml)中,<class name="..">中name的值

        使用:

        (1)给持久类增加构造函数
          

        public Student(){}
        public Student(String name,String sex){
            this.name=name;
            this.sex=sex;
        }

        (2)使用

      

      发现:相对于获得一个object[]数组,操作的不便利,这种封装成持久类对象更容易我们操作,还有就是如果不需要id数据,我们发现并没有查询id数据

    四,“select  聚合函数(属性名称) from 类名称 ”

      

      对于这种聚合函数获得结果集而言,数据只有一条,显然放在List中有些大题小做了,

      uniqueResult()方法来代替list()方法,并且返回的结果不再是List类型而是Long类型

            Query query=session.createQuery("select count(name) from domain.Student");
            Long num=(Long)query.uniqueResult();
            System.out.println(num);

    二级缓存相关:

      回头看看session.createQuery(); 发现我们查询出来有的时候是Object[]类型,有的是Long类型,各种类型。二级缓存只能存储持久化对象,所以像我们这些方式查询出来的数据都不能放入二级缓存中

       Query query=session.createQuery("select id,name from domain.Student");

       Query query=session.createQuery("select new domain.Student(name) from domain.Student");//虽然集合中装的是持久化类型类型,但不是完整的持久化对象

       Query query=session.createQuery("select count(name) from domain.Student");

        以上查询出来的数据放进不了二级缓存中

       Query query=session.createQuery("from domain.Student");

        只有该方法把查询出来的数据放进了二级缓存


      

  • 相关阅读:
    poj 2773 利用欧拉函数求互质数
    poj3358:欧拉定理
    poj:2992 因子数量
    poj3696:同余方程,欧拉定理
    USACO5.4-Character Recognition
    hdu5017:补题系列之西安网络赛1011
    hdu5014:number sequence对称思想
    欧拉函数,欧拉定理例题整理
    POJ 3463 Sightseeing (次短路)
    POJ
  • 原文地址:https://www.cnblogs.com/xingdongpai/p/5115352.html
Copyright © 2020-2023  润新知