1.HQL查询(hibernate query language) 操作的是实体类和属性

*查询所有记录

//1.hql查询操作会使用Query对象
// (1)写sql语句 创建Query对象,
String hql = "from Student"; //from后面是实体类名
Query query = session.createQuery("hql"); //(2)调用方法得到结果
List<Student> list = query.list(); //(3)遍历输出
for( Student student : list){
syso(student.getid()+":::"+student.getname());
}

2.条件查询

*****1.

//1.hql查询操作会使用Query对象
// (1)写sql语句 创建Query对象,
String hql = "from Student where id=? and name=?";
Query query = session.createQuery("hql"); //设置条件值
//第一个参数是?的位置 类型是int 第二个参数是设置的值
query.setParameter(0,1);
query.setParameter(1,"张三"); //(3)调用方法得到结果
List<Student> list = query.list(); //(4)遍历输出
for( Student student : list){
syso(student.getid()+":::"+student.getname());
}

**********2.模糊条件查询

//1.hql查询操作会使用Query对象
// (1)写sql语句 创建Query对象,
String hql = "from Student where name like ?";
Query query = session.createQuery("hql"); //设置条件值
//第一个参数是?的位置 类型是int 第二个参数是设置的值
//查询以张开头的姓名
query.setParameter(0,"张%"); //(3)调用方法得到结果
List<Student> list = query.list(); //(4)遍历输出
for( Student student : list){
syso(student.getid()+":::"+student.getname());
}

3.排序查询

//1.hql查询操作会使用Query对象
// (1)写sql语句 创建Query对象,升序查询asc 降序查询desc;
String hql = "from Student order by cid asc";
Query query = session.createQuery("hql"); //(3)调用方法得到结果
List<Student> list = query.list(); //(4)遍历输出
for( Student student : list){
syso(student.getid()+":::"+student.getname());
}

4.分页查询

在mysql中实现分页使用关键字limit实现

SELECT * FROM Student  LIMIT 0,5
//0是起始位置 5是显示最多纪录数

在hibernate中封装了两个方法来实现分页查询的操作

//1.hql查询操作会使用Query对象
// (1)写sql语句 查询所有 创建Query对象,
String hql = "from Student";
Query query = session.createQuery("hql"); //设置分页数据
query.setFirstResult(0);
query.setMaxResults(5); //(3)调用方法得到结果
List<Student> list = query.list(); //(4)遍历输出
for( Student student : list){
syso(student.getid()+":::"+student.getname());
}

5.投影查询

*****查询的是表中的某一字段的所有值

//1.hql查询操作会使用Query对象
// (1)写sql语句 创建Query对象,
String hql = "select name from Student";
Query query = session.createQuery("hql"); //(3)调用方法得到结果 泛型的类型这里可以是String 如果多个字段的类型不一样 可以写Object
List<Object> list = query.list(); //(4)遍历输出
for( Object object : list){
syso(object);
}

6.聚集函数

*****常见的几种聚集函数  count avg min max sum ;

在这里演示查询表中的记录数

//1.hql查询操作会使用Query对象
// (1)写sql语句 创建Query对象,
String hql = "select count(*) from Student";
Query query = session.createQuery("hql"); //(3)调用方法得到结果 这里用query对象方法直接返回对象形式 不需要list
Object obj = query.uniqueResult();
syso(obj); <-- 注意 上面的那个方法返回类型是Object 如果要返回int或者其他类型 咱们首先考虑到会进行类型的强转 但是在这里会输出异常 异常类型是类型转换异常(ClassCastException) 所以我们要先把Object类型转换成long类型 在转换成Integer类型;
Long longO = (Long)obj;
int count = longO.intValue();
syso(count); -->

hibernate查询方式(二)的更多相关文章

  1. hibernate查询方式

    hibernate查询方式:1.本地SQL查询 2.HQL查询 3.QBC查询 HQL查询:是面向对象的查询语言,是使用最广的一种查询方法 QBC查询:Query by Criteria是一套接口来实 ...

  2. (十)Hibernate 查询方式

     所有项目导入对应的hibernate的jar包.mysql的jar包和添加每次都需要用到的HibernateUtil.java 第一节:Hibernate 查询方式简介 1,导航对象图查询方式: 2 ...

  3. Hibernate查询方式(补)

    -----------------siwuxie095                             Hibernate 查询方式         1.对象导航查询     根据已经加载的对 ...

  4. Hibernate学习10——Hibernate 查询方式

    本章主要是以查询Student的例子: Student.java: package com.cy.model; public class Student { private int id; priva ...

  5. Hibernate 查询方式、JPA查询方式

    hibernate 查询方式: OID 查询 对象导航查询 HQL 方式查询 QBC方式查询 原生SQL方式查询 JPA 查询方式: OID 查询 对象导航查询 JPQL 方式查询 CriteriaB ...

  6. hibernate 查询方式汇总

    主要摘自  http://blog.sina.com.cn/s/blog_7ffb8dd501014a6o.html ,http://blog.csdn.net/xingtianyiyun/artic ...

  7. Hibernate学习笔记(五)—— Hibernate查询方式

    一.对象图导航查询 对象图导航查询方式是根据已经加载的对象,导航到他的关联对象.它利用类与类之间的关系来查询对象.比如要查找一个联系人对应的客户,就可以由联系人对象自动导航找到联系人所属的客户对象.当 ...

  8. hibernate 查询方式

    1.对象导航查询 2.OID查询 3.hql查询 4.QBC查询 5.本地sql查询 一.对象导航查询 示例: 查询id=6的user对象的所有角色: 二.OID查询 实例查询id=6的user对象 ...

  9. Hibernate查询方式汇总

    Hibernate总的来说共有三种查询方式:HQL.QBC和SQL三种.但是细分可以有如下几种: 一.HQL查询方式    这一种我最常用,也是最喜欢用的,因为它写起来灵活直观,而且与所熟悉的SQL的 ...

  10. Hibernate 查询方式(HQL/QBC/QBE)汇总

    作为老牌的 ORM 框架,Hibernate 在推动数据库持久化层所做出的贡献有目共睹. 它所提供的数据查询方式也越来越丰富,从 SQL 到自创的 HQL,再到面向对象的标准化查询. 虽然查询方式有点 ...

随机推荐

  1. Android Drawable 简析

    Drawable 是开发中经常用到的一个概念,我们经常用它去设置 View 的背景,背景可以一个颜色值,也可以是一张资源图片,还可以是一个自定义的 Drawable等等.这篇文章就简单说下 Drawa ...

  2. UiPath之如何打印PDF

    各位小伙伴,大家好,今天写一点基础知识,如何在UiPath中打印PDF. ---小U的QQ群(714733686):小U的订阅号[UiPath8888]--- 当然,我们最希望的就是有一个Activi ...

  3. ubuntu中nfs安装

    Ubuntu Nfs服务器安装 nfs服务器在嵌入式开发中非常常用,可以实现主机和开发板共享文件.    1.安装软件包    sudo apt-get install nfs-common nfs- ...

  4. html与css连接代码

    demo01.html: <!DOCTYPE html><html> <head>  <meta charset="utf-8">  ...

  5. Kickstart Round H 2019 Problem B. Diagonal Puzzle

    有史以来打得最差的一次kickstart竟然发生在winter camp出结果前的最后一次ks = = 感觉自己的winter camp要凉了 究其原因,无非自己太眼高手低,好好做B, C的小数据,也 ...

  6. nyoj 655-光棍的yy (python, 未A)

    655-光棍的yy 内存限制:64MB 时间限制:1000ms 特判: No 通过数:4 提交数:7 难度:2 题目描述: yy经常遇见一个奇怪的事情,每当他看时间的时候总会看见11:11,这个很纠结 ...

  7. 使用POI导出EXCEL工具类并解决导出数据量大的问题

    POI导出工具类 工作中常常会遇到一些图表需要导出的功能,在这里自己写了一个工具类方便以后使用(使用POI实现). 项目依赖 <dependency> <groupId>org ...

  8. python:模块1——标准库简介

    一.文档 windows系统:IDLE中打开帮助文档 Tutorial:简单入门 Library Reference:python内置函数和标准库(看不完的,当做字典来查)(此外还有pypi(拍派社区 ...

  9. ACE框架 基于共享内存的分配器

    ACE框架提供了一个内存分配器模板,并且提供了(仅且)一个模板实例,基于共存内存的内存分配器.这个共存内存分配器模板实例在ACE框架应用于,基于内存映射的进程通讯,以及进程间同步等. ACE内存分配器 ...

  10. 《面试官之你说我听》:简明的图解Redis RDB持久化、AOF持久化

    欢迎关注文章这一系列,一起学习 <提升能力,涨薪可待篇> <面试知识,工作可待篇> <实战演练,拒绝996篇> 如果此文对你有帮助.喜欢的话,那就点个赞呗,点个关注 ...