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 so 文件

    要点 不同的 CPU 架构需要不同的 so 文件 NDK平台不是后向兼容的,而是前向兼容的. ABI 的概念,每一个 Cpu架构对应一个 ABI(Application Binary Interfac ...

  2. NOIP模拟27(命悬一线)

    考得太悬了!

  3. Python基础学习(一)之Python的概述与环境安装

    Python介绍 Python语言介绍 Python是一门高级的.面向对象的.解释性.脚本语言. 高级语言:贴近开发者,对应底层语言,底层语言贴近机器:java.C#.php .ruby 面向对象对应 ...

  4. RPA - UiPath简明教程 ║ .NET的又一领域

    RPA概念 RPA全称为:Robotic Process Automation,即机器人流程自动化. Robotic:这里的机器人是一个虚拟的概念,并不是需要一个实体的机器人,它只是流程的执行体,或者 ...

  5. css3-3D特效

    2D页面即是在浏览器中开发的页面, 3D可以比喻浏览器为窗口,透过浏览器看到3D物体 一.设置3D场景 perspective:800[3D世界中的物体距3D场景的距离800px] perspecti ...

  6. 数据分析之路 第一篇 numpy

    第一篇 numpy 1.N维数组对象 :ndarray在Python中既然有了列表类型,为啥还要整个数组对象(类型)?那是因为:1.数组对象可以除去元素间运算所需要的循环,使得一维向量更像单个数据2. ...

  7. 不需要spring管理,自己根据名字取到对应的bean

    package com.yiban.abc.util; import org.springframework.beans.BeansException; import org.springframew ...

  8. Windows下mysql的下载和安装

    下载: 1.下载地址:https://www.mysql.com/downloads/ 2.选择社区版:MySQL Community (GPL) Downloads » 3.MySQL Commun ...

  9. C++中对C的扩展学习新增语法——函数重载

    函数重载 1.函数重载语法 1.同一个作用域(全局作用域.命名空间作用域.类作用域) 2.参数个数不同 3.参数类型不同 4.参数顺序不同 代码实现: 当函数名字一样的时候,通过参数类型.参数个数.参 ...

  10. PHP 发送get请求

    PHP 发送get请求 file_get_contents 方法: $s = file_get_contents("http://apis.map.qq.com/ws/distance/v1 ...