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,再到面向对象的标准化查询. 虽然查询方式有点 ...
随机推荐
- 最新JetBrains PyCharm 使用教程--下载安装Python库(五)
最新JetBrains PyCharm 下载安装Python库
- CAP的学习和应用
性能优化真言:队列缓存分布式 异步调优堆配置 前言:用CAP有一段时间了,这里简单记录一下,这么好用的东西,小伙伴们赶紧上车吧 一.CAP使用场景? 平时工作中经常使用到MQ,如(kafka,rab ...
- wifi各协议最高速率
- 计划任务at和crontab
目标:会看,会写计划任务时间,会制定计划任务 一次性:at yum -y install at #安装at systemctl start atd #启动at服务 systemctl enable a ...
- SpringMVC错误:nested exception is java.lang.IncompatibleClassChangeError: class org.springframework.core.type.clas
这是jar包冲突引起的 spring-core.jar已经有asm 所以不用再单独导入asm包了
- 高性能Web动画和渲染原理系列(5)合成层的生成条件和陷阱
目录 一. 硬件加速相关的几个概念 二. 合成层的生成条件 显式提升 隐式提升 三. 硬件加速的权衡 四. 动画实现的一些建议 示例代码托管在:http://www.github.com/dashno ...
- hdu 1205 吃糖果 (抽屉原理<鸽笼原理>)
吃糖果Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submissi ...
- Pashmak and Graph(dp + 贪心)
题目链接:http://codeforces.com/contest/459/problem/E 题意:给一个带权有向图, 找出其中最长上升路的长度. 题解:先按权值对所有边排序, 然后依次 u -& ...
- ReactJS中的自定义组件
可控自定义组件: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> < ...
- MATLAB相机标定转XMl代码
function writeXML(cameraParams,file) %writeXML(cameraParams,file) %功能:将相机校正的参数保存为xml文件 %输入: %cameraP ...