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. git apply

    1. git 安装   2.git 与服务器的验证   1.生成ssh ssh-keygen -t rsa -C "1107247128@qq.com" 2.查看生成的pub文件, ...

  2. 数位dp真·浅谈 By cellur925

    预警:由于是从$Vergil$学长那里和$Mathison$大神那里学来的,所以清一色记忆化搜索!qwq 巨佬的数位dp讲解(未来的咕咕日报头条): https://www.luogu.org/blo ...

  3. HTML5中div,article,section的区别

    最近正在学习html5,刚接触html5,感觉有点不适应,因为有一些标签改变了,特别是div, section article这三个标签,查了一些资料,也试着用html5和css3布局网页,稍微有点头 ...

  4. UOJ #35 后缀排序 哈希做法

    题面 http://uoj.ac/problem/35 题解 后缀数组当然可以 这里用哈希做 首先排序的问题在哪里 在于比较两个后缀的复杂度是O(length)的 但是我们可以通过找LCP来优化比较 ...

  5. springMVC的架构与执行流程

    SpringMVC术语 前端控制器(DispatcherServlet):接收请求,响应结果,相当于电脑的CPU. 处理器映射器(HandlerMapping):根据URL去查找处理器 处理器(Han ...

  6. Web service简介 与servletContext的参数

    Web service顾名思义是基于web的服务,它是一种跨平台,跨语言的服务. 我们可以这样理解它,比如说我们可以调用互联网上查询天气信息的web服务,把它嵌入到我们的B/S程序中,当用户从我们的网 ...

  7. v-bind和v-on

    v-bind指令用于设置HTML属性:v-bind:href  缩写为 :href <a :href="{{url}}">aa</a> v-on 指令用于绑 ...

  8. PHP的加密方式

    1. MD5加密 string md5 ( string $str [, bool $raw_output = false ] ) 参数 str  --  原始字符串. raw_output  --  ...

  9. coursera网站中的VTT字幕的使用

    coursera网站中的VTT字幕的使用 1.https://www.coursera.org/learn/os-virtsecurity/lecture/xuWgP/1-3-cao-zuo-xi-t ...

  10. EMAC IP 核

    在有线连接的世界里,以太网(Ethernet)无所不在.以太网具有各种速度模式.接口方式.以及灵活的配置方式.现在的以太网卡都是10/100/1000Mbps自适应网卡.以太网的物理层(PHY)通常使 ...