hibernate查询方式(二)
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查询方式(二)的更多相关文章
- hibernate查询方式
hibernate查询方式:1.本地SQL查询 2.HQL查询 3.QBC查询 HQL查询:是面向对象的查询语言,是使用最广的一种查询方法 QBC查询:Query by Criteria是一套接口来实 ...
- (十)Hibernate 查询方式
所有项目导入对应的hibernate的jar包.mysql的jar包和添加每次都需要用到的HibernateUtil.java 第一节:Hibernate 查询方式简介 1,导航对象图查询方式: 2 ...
- Hibernate查询方式(补)
-----------------siwuxie095 Hibernate 查询方式 1.对象导航查询 根据已经加载的对 ...
- Hibernate学习10——Hibernate 查询方式
本章主要是以查询Student的例子: Student.java: package com.cy.model; public class Student { private int id; priva ...
- Hibernate 查询方式、JPA查询方式
hibernate 查询方式: OID 查询 对象导航查询 HQL 方式查询 QBC方式查询 原生SQL方式查询 JPA 查询方式: OID 查询 对象导航查询 JPQL 方式查询 CriteriaB ...
- hibernate 查询方式汇总
主要摘自 http://blog.sina.com.cn/s/blog_7ffb8dd501014a6o.html ,http://blog.csdn.net/xingtianyiyun/artic ...
- Hibernate学习笔记(五)—— Hibernate查询方式
一.对象图导航查询 对象图导航查询方式是根据已经加载的对象,导航到他的关联对象.它利用类与类之间的关系来查询对象.比如要查找一个联系人对应的客户,就可以由联系人对象自动导航找到联系人所属的客户对象.当 ...
- hibernate 查询方式
1.对象导航查询 2.OID查询 3.hql查询 4.QBC查询 5.本地sql查询 一.对象导航查询 示例: 查询id=6的user对象的所有角色: 二.OID查询 实例查询id=6的user对象 ...
- Hibernate查询方式汇总
Hibernate总的来说共有三种查询方式:HQL.QBC和SQL三种.但是细分可以有如下几种: 一.HQL查询方式 这一种我最常用,也是最喜欢用的,因为它写起来灵活直观,而且与所熟悉的SQL的 ...
- Hibernate 查询方式(HQL/QBC/QBE)汇总
作为老牌的 ORM 框架,Hibernate 在推动数据库持久化层所做出的贡献有目共睹. 它所提供的数据查询方式也越来越丰富,从 SQL 到自创的 HQL,再到面向对象的标准化查询. 虽然查询方式有点 ...
随机推荐
- AutoCad 二次开发 .net 之层表的增加 删除 修改图层颜色 遍历 设置当前层
AutoCad 二次开发 .net 之层表的增加 删除 修改图层颜色 遍历 设置当前层 AutoCad 二次开发 .net 之层表的增加 删除 修改图层颜色 遍历 设置当前层我理解的图层的作用大概是把 ...
- Java设计模式之模板方法模式(Template)
前言: 我们在开发中有很多固定的流程,这些流程有很多步凑是固定的,比如JDBC中获取连接,关闭连接这些流程是固定不变的,变动的只有设置参数,解析结果集这些是根据不同的实体对象“来做调整”,针对这种拥有 ...
- deepin 15.11添加应用启动图标
以postman为例(路径要按需修改) 1.建立软链接 sudo ln -s /home/lixing/software/Postman/Postman /usr/bin/postman 前面地址为安 ...
- PHP 7.4 新语法:箭头函数
短闭包,也叫做箭头函数,是一种用 php 编写的短函数.当向函数中传递闭包时,这个功能是非常有用的,比如使用 array_map 或是 array_filter 函数时. 译者注:PHP7.4 计划于 ...
- DAGScheduler stage 划分算法
DAGScheduler stage 划分算法 stage划分算法很重要,对于spark开发人员来说,必须对stage划分算法很清晰,知道自己编写的spark Application被划分成了几个jo ...
- 第一篇: openJDK源码编译安装--mac版本
1.为什么要编译JDK 想要一探JDK内部的实现机制,最便捷的路径之一就是自己编译一套JDK,通过阅读和跟踪调试JDK源码去了解Java技术体系的原理,虽然门槛高一点,但肯定比阅读各种书籍,文章,博客 ...
- C语言|博客作业03
这个作业属于哪个课程 C程序语言设计 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-1/homework/8654 我在这个课程的目标是 ...
- Java虚拟机的内存
JDK1.8之前,java内存分为 线程共享区:堆.方法区.直接内存(非运行时数据区的一部分).线程私有区:程序计数器.虚拟机栈.本地方法栈. JDK1.8开始,虚拟机取消了方法区,改为元空间. 程序 ...
- python_08
一.作业 ''' 主页: 图标地址.下载次数.大小.详情页地址 详情页: 游戏名.好评率.评论数.小编点评.下载地址.简介.网友评论.1-5张截图链接地址. https://www.wandoujia ...
- 新闻实时分析系统-Flume数据采集准备
Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集.聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据:同时,Flume提供对数据进行简单处理,并 ...