hibernate中.常见的hql查询语句 - 敬畏之心+持之以恒

hwgok 2021-11-06 原文


hibernate中.常见的hql查询语句

hql是非常有意识的被设计为完全面向对象的查询

基本规则:

1.hql语法类似于sql,但它后面跟的不是表名和字段名,而是类名和属性名

2.hql大小写不敏感.但是设计java类名,包名,属性名时大小写敏感.

public void test1(){ //重要
  Session session = HibUtil.getSession();
  Transaction tx =session.beginTransaction();
  Query query =session.createQuery(“from Emp e”);
  List<Emp> empList = query.list();
  for(Emp e:empList){
  System.out.println(e.getEname());
  }
  tx.commit();
  session.close();
}
public void test2(){ //单个对象 重要
  Session session = HibUtil.getSession();
  Transaction tx =session.beginTransaction();
  Query query =session.createQuery(“select count(*) from Emp e”);//集合函数查询
  Long n = (Long) query.uniqueResult();
  System.out.println(n);
  tx.commit();
  session.close();
}
public void test3(){ //单个对象 重要
  Session session = HibUtil.getSession();
  Transaction tx =session.beginTransaction();
  Query query =session.createQuery(“from Emp e where e.empno=7369”);
  Emp emp = (Emp) query.uniqueResult();
  System.out.println(emp.getEname());
  tx.commit();
  session.close();
}
public void test4(){ //Object[] 次重要
  Session session = HibUtil.getSession();
  Transaction tx =session.beginTransaction();
  Query query =session.createQuery(“select e.empno,e.ename from Emp e “);
  List<Object[]> list =query.list();
  for(Object[] obj:list){
    System.out.println(obj[0]+”–>”+obj[1]);
  }
  tx.commit();
  session.close();
}
public void test5(){ //map 次重要
  Session session = HibUtil.getSession();
  Transaction tx =session.beginTransaction();
  Query query =session.createQuery(“select new map(e.empno as empno,e.ename as ename) from Emp e “);
  List<Map<String,Object>> list =query.list();
  for(Map<String,Object> map:list){
    System.out.println(map.get(“empno”)+”–>”+map.get(“ename”));
  }
  tx.commit();
  session.close();
}
public void test6(){ //对象 次重要
  Session session = HibUtil.getSession();
  Transaction tx =session.beginTransaction();
  Query query =session.createQuery(“select new com.cdsxt.hib.vo.EmpVo(e.empno,e.ename) from Emp e “);//投影查询
  List<EmpVo> list =query.list();
  for(EmpVo emp:list){
    System.out.println(emp.getEmpno()+”–>”+emp.getEname());
  }
  tx.commit();
  session.close();
}
public void test7(){ //where条件 重要
  Session session = HibUtil.getSession();
  Transaction tx =session.beginTransaction();
  // Query query =session.createQuery(“from Emp e where e.job=?”);
  // query.setParameter(0, “CLERK”);//?是从0开始的
  Query query =session.createQuery(“from Emp e where e.job=:job”);
  query.setParameter(“job”, “CLERK”);
  List<Emp> list =query.list();
  for(Emp emp:list){
    System.out.println(emp.getEmpno()+”–>”+emp.getEname());
  }
  tx.commit();
  session.close();
}
public void test8(){ //where条件 重要
  Session session = HibUtil.getSession();
  Transaction tx =session.beginTransaction();
  Query query =session.createQuery(“from Emp e where e.dept.deptno=:deptno”);
  query.setParameter(“deptno”, 10);
  List<Emp> list =query.list();
  for(Emp emp:list){
    System.out.println(emp.getEmpno()+”–>”+emp.getEname()+”–>”+emp.getDept().getDname());
  }
  tx.commit();
  session.close();
}
public void test9(){ //where条件 重要
  Session session = HibUtil.getSession();
  Transaction tx =session.beginTransaction();
  Query query =session.createQuery(“from Emp e left outer join e.dept”); //hql会自动匹配e.deptno=dept.deptno
  query.list();
  tx.commit();
  session.close();
}
public void test10(){ //where条件 重要
  Session session = HibUtil.getSession();
  Transaction tx =session.beginTransaction();
  SQLQuery sqlQuery=session.createSQLQuery(“select * from Emp e where e.ename like ?”);
  sqlQuery.setParameter(0, “%A%”);
  sqlQuery.addEntity(Emp.class);
  List<Emp> empList = sqlQuery.list();
  for(Emp emp:empList){
    System.out.println(emp.getEmpno()+”–>”+emp.getEname()+”–>”+emp.getDept().getDname());
  }
  tx.commit();
  session.close();
}

 

发表于
2016-04-12 14:43 
敬畏之心+持之以恒 
阅读(166
评论(0
编辑 
收藏 
举报

 

版权声明:本文为hwgok原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/hwgok/p/5382648.html

hibernate中.常见的hql查询语句 - 敬畏之心+持之以恒的更多相关文章

  1. Java数据结构和算法(一)线性结构 – binarylei

    Java数据结构和算法(一)线性结构 Java数据结构和算法(一)线性结构 数据结构与算法目录(https:/ […]...

  2. kafka消费者如何才能从头开始消费某个topic的全量数据 – ExplorerMan

    kafka消费者如何才能从头开始消费某个topic的全量数据 消费者要从头开始消费某个topic的全量数据,需 […]...

  3. windows 远程连接 快捷键 – java20130722

    windows 远程连接 快捷键 2013-05-02 10:00  java20130722  阅读(238 […]...

  4. 在阿里云服务器中配置JDK、tomcat、mysql – 宇宙美少女

    在阿里云服务器中配置JDK、tomcat、mysql 阿里云服务器搭建配置 linux命令:参考:https: […]...

  5. [报错:访问终端localhos不允许远程访问]ERROR 1044 (42000): Access denied for user \’root\’@\’localhost\’ – Tanwheey

    [报错:访问终端localhos不允许远程访问]ERROR 1044 (42000): Access deni […]...

  6. Web jquery表格组件 JQGrid 的使用 – 7.查询数据、编辑数据、删除数据

      系列索引 Web jquery表格组件 JQGrid 的使用 – 从入门到精通 开篇及索引 W […]...

  7. 百度竞价排名相关介绍 – Anson

    百度竞价排名相关介绍 什么是百度竞价排名服务?    百度竞价排名服务,是由客户为自己的网页购买关键字排名,按 […]...

  8. 一款全面高效的日志分析工具,操作更简单 – ManageEngine

    一款全面高效的日志分析工具,操作更简单 Eventlog Analyzer是用来分析和审计系统及事件日志的管理 […]...

随机推荐

  1. 史上最全量化资源整理

    有些国外的平台、社区、博客如果连接无法打开,那说明可能需要“科学”上网 量化交易平台 国内在线量化平台: Bi […]...

  2. 主成分和因子分析

    一、主成分分析概述: 是否可以用较少的几个相互独立的指标代替原来的多个指标,使其既能减少指标个数,又能综合反映 […]...

  3. 谈谈接口协议

    谈谈前端对接口的要求,以及它会带来的好处 什么是协议: 所谓的协议就是指大家都认同的一个标准规范,并且大家都承 […]...

  4. 许嵩新歌《放肆》发布 && 递归 + Stream+Lambda相遇成树

    一、《放肆》如约而至   今早5:00在迷迷糊糊中醒来,打开手机一看,许嵩又发新歌了,名字叫做《放肆》,澎湃的 […]...

  5. 对象里面的属性有值但是打印出来是空的,获取不到

    如下,对象  obj 的 arr 属性是个数组,是有内容的,但是获取 obj.arr 的时候 获取的是空数组 […]...

  6. Spring IOC

    前言 Spring框架为什么如此流行? 原来Spring框架解决了一个很关键的问题,它可以把对象之间的依赖关系 […]...

  7. jQuery脚本语言

    1.下载jQuery库地址:https://code.jquery.com/jquery-3.5.1.js 压缩版和未压缩版(用于发布,不利于学习)jQuery 库是一个 JavaScript 文件,您可以使用 HTML 的 <sc...

  8. DNS原理和智能DNS及CDN

    CDN是什么   CDN(Content Delivery Network)是内容分发网络。   作用:    […]...

展开目录

目录导航