package cn.itcast.h3.hql;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session; import cn.itcast.h3.hql.vo.StudentModel;
import cn.itcast.h3.hql.vo.TeacherModel;
import cn.itcast.h3.util.HibernateUtil; public class HQLApp {
//测试简单查询
void testSimple(){
Session s = HibernateUtil.getSession(); //1.HQL
String hql = "from TeacherModel";
//2.Query
Query q = s.createQuery(hql);
//3.获取查询结果
List<TeacherModel> queryList = q.list();
for(TeacherModel tm:queryList){
System.out.println(tm);
} s.close();
}
//链式格式
void testLinked(){
Session s = HibernateUtil.getSession(); //3.获取查询结果
List<TeacherModel> queryList = s.createQuery( "from TeacherModel where uuid <=:uuid").setFirstResult(1).setMaxResults(3).setLong("uuid", 3L).list(); for(TeacherModel tm:queryList){
System.out.println(tm);
} s.close();
}
//别名格式
void testAlias(){
Session s = HibernateUtil.getSession(); //1.HQL
String hql = "select um.nick from TeacherModel um";
//2.Query
Query q = s.createQuery(hql);
//3.获取查询结果
List<String> queryList = q.list();
for(String tm:queryList){
System.out.println(tm);
} s.close();
}
//聚合函数
void testFunctoin(){
Session s = HibernateUtil.getSession();
//1.HQL
String hql = "select sum(age) from StudentModel";
//2.Query
Query q = s.createQuery(hql);
Long avgAge = (Long) q.uniqueResult();
System.out.println(avgAge);
s.close();
}
//按条件查询
void testEntityQuery(){
Session s = HibernateUtil.getSession();
//1.HQL
//编号为4的老师有哪些学生
// String hql = "from StudentModel where teacher.uuid= :uuid";
// //2.Query
// Query q = s.createQuery(hql);
// q.setLong("uuid",4L); String hql = "from StudentModel where teacher = :teacher";
Query q = s.createQuery(hql);
TeacherModel tm = new TeacherModel();
tm.setUuid(4L);
// tm.setTeacherName("李若亮");
//为hql赋值对象参数
q.setEntity("teacher", tm);
List<StudentModel> queryList = q.list();
for(StudentModel sm:queryList){
System.out.println(sm);
}
}
//无条件查询
void testNoCondQuery(){
Session s = HibernateUtil.getSession(); String hql = "from TeacherModel where teacherName = nick";
Query q = s.createQuery(hql);
List<TeacherModel> queryList = q.list();
for(TeacherModel sm:queryList){
System.out.println(sm);
}
}
//投影查询
void testOtherQuery(){
Session s = HibernateUtil.getSession(); String hql = "select new TeacherModel(teacherName,nick) from TeacherModel";
Query q = s.createQuery(hql);
List<TeacherModel> queryList = q.list();
for(TeacherModel sm:queryList){
System.out.println(sm);
}
}
//投影查询list
void testOtherQuery2(){
Session s = HibernateUtil.getSession(); String hql = "select new list(teacherName,nick) from TeacherModel";
Query q = s.createQuery(hql);
List<List<String>> queryList = q.list();
for(List<String> sm:queryList){
for(String sa:sm){
System.out.println(sa);
}
}
}
//查询分组
void testGroupQuery(){
Session s = HibernateUtil.getSession(); String hql = "select skill,count(skill) from StudentModel group by skill";
Query q = s.createQuery(hql);
List<Object[]> queryList = q.list();
for(Object[] objs:queryList){
for(Object obj:objs){
System.out.print(obj+"\t");
}
System.out.println();
}
}
//查询分组
void testObejcts(){
Session s = HibernateUtil.getSession(); String hql = "from java.lang.Object";
Query q = s.createQuery(hql);
List<Object> queryList = q.list();
for(Object obj:queryList){
System.out.println(obj);
}
}
//配置格式的查询
void testConfQuery(){
Session s = HibernateUtil.getSession(); Query q = s.getNamedQuery("getAll");
q.setString("name", "李若亮");
List<Object> queryList = q.list();
for(Object obj:queryList){
System.out.println(obj);
}
} public static void main(String[] args) {
new HQLApp().testConfQuery();
}
}

hibernate框架学习之数据查询(HQL)helloworld的更多相关文章

  1. hibernate框架学习之数据查询(HQL)

    lHibernate共提供5种查询方式 •OID数据查询方式 •HQL数据查询方式 •QBC数据查询方式 •本地SQL查询方式 •OGN数据查询方式 OID数据查询方式 l前提:已经获取到了对象的OI ...

  2. hibernate框架学习之数据查询(QBC)helloworld

    package cn.itcast.h3.query.hql; import java.util.List; import org.hibernate.Criteria; import org.hib ...

  3. hibernate框架学习之数据查询(QBC)

    lQBC(Query By Criteria)是一种Hibernate中使用面向对象的格式进行查询的计数 lQBC查询方式步骤 •获取Session对象 •初始化Criteria对象(使用Sessio ...

  4. hibernate框架学习之数据查询(本地SQL)

    本地SQL查询方式 lHibernate框架支持使用原生态SQL语句进行操作数据库 l查询对象SQLQuery由Session获取 •SQLQuery sq = s.createSQLQuery(&q ...

  5. hibernate框架学习笔记7:HQL查询、Criteria查询简介

    HQL查询:hibernate独有的查询语言 适用于不复杂的多表查询 示例: 实体类: package domain; public class Customer { private Long cus ...

  6. hibernate框架学习之增删改查helloworld

    插入数据删除数据修改数据查询单条数据查询多条数据 HelloWorldApp.java package cn.itcast.h3.helloworld; import org.hibernate.Se ...

  7. hibernate框架学习之数据抓取(加载)策略

    Hibernate获取数据方式 lHibernate提供了多种方式获取数据 •load方法获取数据 •get方法获取数据 •Query/ Criteria对象获取数据 lHibernate获取的数据分 ...

  8. hibernate框架学习笔记10:HQL查询详解

    HQL语句中不可以出现与表有关的内容,而是对象的属性 实体类(注意配置文件): package domain; import java.util.HashSet; import java.util.S ...

  9. hibernate框架学习之数据抓取(加载)策略helloworld

    package cn.itcast.h3.query.hql; import java.util.List; import org.hibernate.Query; import org.hibern ...

随机推荐

  1. springboot打包成war,部署到tomcat无法访问的问题

    如题:实在是太坑.平时本地测试觉得很方便,但是到了项目打包发布掉链子了. 如很多帖子一样: 首先springboot内嵌的tomcat,再依赖servlet-api,修改启动类继承SpringBoot ...

  2. HDU 1097(m次幂的个位数 规律)

    题意是求 n^m 结果的最后一位数. 可以用快速幂取模的方法做,当然本题还有更简单的方法: 所有数字( 0 - 9 )的 m 次幂的个位数不会受进位的影响,只收到乘数的影响,所以在结果中一旦出现之前出 ...

  3. stat/lstat函数使用

    1. 进程虚拟地址空间 2. stat函数 获取文件信息 #include <sys/types.h> #include <sys/stat.h> #include <u ...

  4. tedu训练营day04

    1.猜拳:import randomlist = ['石头','剪刀','布']y = input('''(0) 石头(1) 剪刀(2) 布请出拳(0/1/2):******************* ...

  5. overflow:auto学习

    一直认为没认为这个属性没什么大的用处,最近在使用一次iscroll时一直浮动到顶部层上面找了半天,发现可以用这个属性解决. 1.功能1,清除浮动.设置overflow并不会在该元素上清除浮动,它将清除 ...

  6. Weex Ui - Weex Conf 2018 干货分享

    本文是2018年 Weex Conf 中议题<Weex + Ui>的内容文档整理,主要给大家介绍飞猪 Weex 技术体系从无到有的过程,包括 Weex Ui 组件库的开发和发展,重点分享在 ...

  7. mini2440开发板jilnk使用

    1.安装Setup_JLinkARM_V402d.exe软件 安装完成打开SEGGR J-FLASH ARM,界面如下: 2.用jlink将开发板与pc连接,打开开发板电源,将开关s2拨到nor fl ...

  8. c++过程

    <<C++ beginner >> 入门 <<C++ primer>> 基础 <<The C++ programming language ...

  9. C# 常用的工具方法

    1.DateTime 转为Unix的long的时间戳 long orderTime = order.AddTime.ToUnixTimeStamp("Milliseconds"); ...

  10. luogu P3295 [SCOI2016]萌萌哒

    传送门 题目条件"两个子串\(S[l_1,r_1],S[l_2,r_2]\)完全相同"等价于\(\forall i \in[0,r_1-l_1+1],S_{l1+i}=S_{l_2 ...