HQL查询语法

  

查询:
public class Dome{
Session session = HibernaeUitls.openSession();
Transaction tx = session.beginTransaction();
//待执行执行sql
    String hql = "from User";
   String hqls = "from cn.it.User"//类路径下
   //排序查询
    String Orderby = "from cn.it.User Order by u_id asc";
    String Orderby2 = "from cn.it.User Order by u_id desc";
   //条件查询
    String Wherehql = "from cn.it.User where u_id = ?";
    String wherehql = "from cn.it.User where u_id =:id";
    
//创建查询对象
Query query = session.createQuery(hql);
List list = query.list();
System.out.println(list);
//提交事务
tx.commit();
//关闭session
session.close();
}
//分页
public void fun4(){
Session session = HibernateUtils.openSession();
Transaction tx = session.beginTransaction();
//----------------------------------------------------
String hql1 = " from cn.it.User ";//完整写法 Query query = session.createQuery(hql1); //limit ?,?
// (当前页数-1)*每页条数
query.setFirstResult(4);
query.setMaxResults(5); List list = query.list(); System.out.println(list);
//----------------------------------------------------
tx.commit();
session.close(); }

聚合查询:count,sum ,svg,max,min

public void fun5(){
Session session = HibernateUtils.openSession();
Transaction tx = session.beginTransaction();
//----------------------------------------------------
String hql1 = " select count(*) from cn.it.User ";
String hql2 = " select sum(cust_id) from cn.it.User ";
String hql3 = " select avg(cust_id) from cn.it.User ";
String hql4 = " select max(cust_id) from cn.it.User ";
String hql5 = " select min(cust_id) from cn.it.User "; Query query = session.createQuery(hql5); Number number = (Number) query.uniqueResult(); System.out.println(number);
//----------------------------------------------------
tx.commit();
session.close(); }

投影查询

public void fun6(){
Session session = HibernateUtils.openSession();
Transaction tx = session.beginTransaction();
//----------------------------------------------------//
String hql1 = " select u_name from cn.it.User ";
String hql2 = " select u_name,u_id from cn.it.User ";
String hql3 = " select new User(u_id,u_name) from cn.it.User "; Query query = session.createQuery(hql3); List list = query.list(); System.out.println(list); //----------------------------------------------------//
tx.commit();
session.close(); }

Criteria查询语法:和HQL一样的也是面向对象的ORM查询

简单查询:
public void fun(){
Session session = HibernateUtils.openSession();
Transaction tx = session.beginTransaction();
//--------------------------------------------------
User c = session.createCritreria(User.class);
List <User> list = c.list():
System.out.println(list);
//--------------------------------------------------
tx.commit();
session.clone();
}
#条件查询
----------
//---------------------------------------------------------------
Criteria c = session.createCriteria(User.clsss);
//添加
c.add(Restrictions.eq("u_id",32));
List<User> list = c.list();
System.out.println(list); //---------------------------------------------------------------
tx.commit();
session.close();
#分页
----------
//---------------------------------------------------------------
Criteria c = session.createCriteria(User.clsss); c.setFirstResult(1);
c.setMaxResult(4); List<User> list = c.list();
System.out.println(list); //---------------------------------------------------------------
tx.commit();
session.close();
#排序

//---------------------------------------------------------------
Criteria c = session.createCriteria(User.clsss); c.addOrder(Order.asc("u_id"));
//c.addOrder(Order.desc("u_id")); List<User> list = c.list();
System.out.println(list); //---------------------------------------------------------------
tx.commit();
session.close();
统计

//---------------------------------------------------------------
Criteria c = session.createCriteria(User.clsss); c.setProjection(Projections.rowCount()); List<User> list = c.list();
System.out.println(list); //---------------------------------------------------------------
tx.commit();
session.close();

离线Criteria

Public void fun(){
DetachedCriteria dc = DetachedCriteria.forClass(User.class);
dc.add(Restrictions.idEq(61));
//-------------------------------------------------------------
Session session = HibernateUtils.openSession();
Transaction tx = session.beginTransaction();
//-----------------------------------------------------------
Criteria c = dc.getExecutableCriteria(session);
List list = c.list();
System.out.println(list); //-------------------------------------------------------------
tx.commit();
session.close();
}

查询优化

Hibernate-04的更多相关文章

  1. Rhythmk 学习 Hibernate 04 - Hibernate 辅助工具 之 JBoos Tool

    1.安装JBoos Tool Help -> Install new Software 然后添加: http://download.jboss.org/jbosstools/updates/de ...

  2. ubuntu 12.04(Precise Pangolin)启用休眠(Hibernate)功能的方案

    官方支持文档:https://help.ubuntu.com/12.04/ubuntu-help/power-hibernate.html 按照这篇官方支持,因为休眠功能存在bug,12.04没有默认 ...

  3. Hibernate 系列 04 - Hibernate 配置相关的类

    引导目录: Hibernate 系列教程 目录 前言: 通过上一篇的增删改查小练习之后,咱们大概已经掌握了Hibernate的基本用法. 我们发现,在调用Hibernate API的过程中,虽然Hib ...

  4. 04.Hibernate一对一关联

        前言:本文主要介绍使用Hibernate映射一对一的关联关系的两种方式:使用外键映射.使用主键映射. 1.数据库表的一对一关联关系     本文根据客户信息表(tb_customer)和地址信 ...

  5. Hibernate查询以及优化策略04

    一. HQL查询 1. HQL(hibernate query language)单表查询 1.1 准备项目 创建项目: hinernate-03-query 引入jar,同前一个项目 复制实体(订单 ...

  6. Hibernate-ORM:04.Hibernate中的get()和load()

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 本篇博客会讲如何用get()或load()查询单个对象和对缓存的简单操作,以及他俩的区别和相同(前面有的那些配 ...

  7. Struts2+Spring+Hibernate step by step 04 整合Spring之二,从数据库验证username和password

    注:本系列文章部分内容来自王健老师编写ssh整合开发教程 使用Spring的AOP进行项目的事务管理,已经成为非常多企业的首先,Spring做为优秀的开源项目,其在数据库连接.事务管理方面的优势已经显 ...

  8. 04.Hibernate常用的接口和类---SessionFactory类和作用

    是一个生成Session的工厂类 特点: 1.由Configuration通过加载配置文件创建该对象. SessionFactory factory = config.buildSessionFact ...

  9. Hibernate 系列 学习笔记 目录 (持续更新...)

    前言: 最近也在学习Hibernate,遇到的问题差不多都解决了,顺便把学习过程遇到的问题和查找的资料文档都整理了一下分享出来,也算是能帮助更多的朋友们了. 最开始使用的是经典的MyEclipse,后 ...

  10. Hibernate 命名查询

    1.定义 Hibernate允许在映射配置文件中定义字符串形式的查询语句,这种查询方式被称为命名查询. 2.创建表结构并添加测试数据 create table `student` ( `id` dou ...

随机推荐

  1. HDU5213(容斥定理+莫队算法)

    传送门 题意 给出n个数和幸运数k,m次询问,每次询问[l1,r1]和[l2,r2]有多少对数满足x+y=k,x∈[l1,r1],y∈[l2,r2] 分析 看到m只有3e4,可以考虑\(m\sqrt{ ...

  2. 【杂谈】5G有啥用?跟咱有关系么?关注那玩意儿干啥?

    用处大了 有啥用? 云计算啊,你看看你电脑都卡成啥了? 既然5G速度赶上本地读取,那就相当于把硬盘放云端没问题了.那么,看看自己硬盘里都有啥,5G的用处或许就能一点点浮现出来了. ——请不要急着打开一 ...

  3. 怎么让普通用户达到root用户也可以拥有权限修改文件(CentOS系统)

    为什么会提出这个问题呢? 答:因为啊,比如我们在大数据集群搭建的时候,经常会需要配置环境变量,如/etc/profile.那么,问题来了,每次必须得都切换到root用户才能,但是呢,如何可以在普通用户 ...

  4. vs2015未能正确加载“ProviderPackage”包

    出现以下错误的解决方案 ---------------------------Microsoft Visual Studio---------------------------未能正确加载“Prov ...

  5. div倾斜 文字不倾斜

  6. bzoj 4860 [BeiJing2017]树的难题

    题面 https://www.lydsy.com/JudgeOnline/problem.php?id=4860 题解 点分治 设当前重心为v 假设已经把所有边按照出发点第一关键字, 颜色第二关键字排 ...

  7. 条形码问题 dp+求某个序列在某种排列中的序号的方法

    题目 条形码是一种由亮条(Light Bar)和暗条(Dark Bar)交替出现且以暗条为起头的符号,每条都占有若干个单位宽.图33-1给出了一个含有4个条的条形码,它延续了1+2+3+1=7单位的宽 ...

  8. 香港药品 ref

    --公牛牌风湿骨刺丹30粒 参考网站--http://item.jd.com/1955815605.html?gjz=0#comments-list 88 --参考网站1,没有 http://www. ...

  9. Jquery show()方法图解

    前两天面试的时候被问到了show()方法,当时回答的实在是太惨烈... 晚上看了一下,最简单的走法是直接移除行内样式的style属性. 如果这步走完了,元素还是隐藏的(display为none),元素 ...

  10. Linux在线安装pip和numpy

    最近写Python需要用到numpy包 运行pip install numpy就会自动安装 一.因此需要先安装pip 1.如果安装的是Python>=2.7.9或者Python>=3.4, ...