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. loj#2541. 「PKUWC2018」猎人杀

    传送门 思路太清奇了-- 考虑容斥,即枚举至少有哪几个是在\(1\)号之后被杀的.设\(A=\sum_{i=1}^nw_i\),\(S\)为那几个在\(1\)号之后被杀的人的\(w\)之和.关于杀了人 ...

  2. P5110 块速递推

    传送门 为啥我就没看出来有循环节呢-- 打表可得,这个数列是有循环节的,循环节为\(10^9+6\),然后分块预处理,即取\(k=sqrt(10^9+6)\),然后分别预处理出转移矩阵\(A\)的\( ...

  3. Luogu P3393 逃离僵尸岛【最短路】By cellur925

    题目传送门 题目大意:(其实概括出来也就基本做完了hh)在一张有$n$个点,$m$条边的无向图上,有$k$个点是不能经过的,而与之距离不超过$s$的点,到他们会花费$Q$元,到其他点会花费$p$元,求 ...

  4. win操作系统段和分页机制

  5. hbuilder 中文乱码

    这是因为HBuilder默认文件编码是UTF-8,你可以在工具-选项-常规-工作空间选项中设置默认字符编码

  6. D. The Door Problem 带权并查集

    http://codeforces.com/contest/776/problem/D 注意到每扇门都有两个东西和它连接着,那么,如果第i扇门的状态是1,也就是已经打开了,那么连接它的两个按钮的状态应 ...

  7. 如何修改phpmyadmin上传文件大小限制

    修改php配置文件,php.ini upload_max_filesize = 100M post_max_size = 100M 一般修改这2个就行了,然后重启wampserver 如果还不行,就执 ...

  8. POST 传参

    $http.post("../jzgCar_listAllJzgCar.do?data={parentId:"+value+"}") value 是参数,都是双 ...

  9. python工具之exccel模板生成报表

    from Db import Db from log import log import xlwt import xlrd from xlutils.copy import copy import s ...

  10. f# mathprovider

    http://mathprovider.codeplex.com/ http://mathnetnumerics.codeplex.com/releases/view/110750 http://py ...