Hibernate-04
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的更多相关文章
- Rhythmk 学习 Hibernate 04 - Hibernate 辅助工具 之 JBoos Tool
1.安装JBoos Tool Help -> Install new Software 然后添加: http://download.jboss.org/jbosstools/updates/de ...
- ubuntu 12.04(Precise Pangolin)启用休眠(Hibernate)功能的方案
官方支持文档:https://help.ubuntu.com/12.04/ubuntu-help/power-hibernate.html 按照这篇官方支持,因为休眠功能存在bug,12.04没有默认 ...
- Hibernate 系列 04 - Hibernate 配置相关的类
引导目录: Hibernate 系列教程 目录 前言: 通过上一篇的增删改查小练习之后,咱们大概已经掌握了Hibernate的基本用法. 我们发现,在调用Hibernate API的过程中,虽然Hib ...
- 04.Hibernate一对一关联
前言:本文主要介绍使用Hibernate映射一对一的关联关系的两种方式:使用外键映射.使用主键映射. 1.数据库表的一对一关联关系 本文根据客户信息表(tb_customer)和地址信 ...
- Hibernate查询以及优化策略04
一. HQL查询 1. HQL(hibernate query language)单表查询 1.1 准备项目 创建项目: hinernate-03-query 引入jar,同前一个项目 复制实体(订单 ...
- Hibernate-ORM:04.Hibernate中的get()和load()
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 本篇博客会讲如何用get()或load()查询单个对象和对缓存的简单操作,以及他俩的区别和相同(前面有的那些配 ...
- Struts2+Spring+Hibernate step by step 04 整合Spring之二,从数据库验证username和password
注:本系列文章部分内容来自王健老师编写ssh整合开发教程 使用Spring的AOP进行项目的事务管理,已经成为非常多企业的首先,Spring做为优秀的开源项目,其在数据库连接.事务管理方面的优势已经显 ...
- 04.Hibernate常用的接口和类---SessionFactory类和作用
是一个生成Session的工厂类 特点: 1.由Configuration通过加载配置文件创建该对象. SessionFactory factory = config.buildSessionFact ...
- Hibernate 系列 学习笔记 目录 (持续更新...)
前言: 最近也在学习Hibernate,遇到的问题差不多都解决了,顺便把学习过程遇到的问题和查找的资料文档都整理了一下分享出来,也算是能帮助更多的朋友们了. 最开始使用的是经典的MyEclipse,后 ...
- Hibernate 命名查询
1.定义 Hibernate允许在映射配置文件中定义字符串形式的查询语句,这种查询方式被称为命名查询. 2.创建表结构并添加测试数据 create table `student` ( `id` dou ...
随机推荐
- 黑客攻防技术宝典web实战篇:攻击验证机制习题
猫宁!!! 参考链接:http://www.ituring.com.cn/book/885 随书答案. 1. 在测试一个使用joe和pass证书登录的Web应用程序的过程中,在登录阶段,在拦截代理服务 ...
- Palindrome Partitioning LightOJ - 1044(回文串最小分割数,O(n^2)预处理子串是否回文)
题意:将一个字符串分割成最少的字符串,使得分割出的每个字符串都是回文串.输出最小的分割数. 方法(自己的):先O(n^2)(用某个点或某个空区间开始,每次向左右扩展各一个的方法)处理出所有子串是否回文 ...
- VS Code 自用插件备份
自用插件备份 Auto Close Tag 自动闭合标签 Atuo Rename Tag 更改前面标签的时候, 自动更改后面的闭合标签 Guides 对齐线 open-in-browser 在浏览器中 ...
- 单机版solr6.3和分布式solr6.3的安装部署
一.单机版的solr部署 我的是在windows下安装的,linux同理 1. 安装JDK8,并配置好环境变量,一般我们经常开发的电脑上应该都有JDk了,所以这一步可以忽略. 2. 解压solr6.3 ...
- spark Listener和metrics实现分析
在spark内部,rpc可以用来实现不同组件(Driver, executor,client)之间的远程交互.而在同一组件内,spark还有事件监听机制,如spark中各种指标的采集主要就是通过事件监 ...
- 基于webmagic的爬虫小应用
以前没有写过爬虫程序,最近两天就研究了一下java的爬虫框架webmagic.然后写了一个demo 写爬虫的基本思想: 1.抓取目标连接 2.根据页面中标签,抓捕你需要的内容 3.保存结果集 以下是实 ...
- import和from .xxx import *的一点重要区别
import zzz 不会导入zzz中已导入的模块 from .xxx import * 会导入xxx中已导入的模块 特别注意: 使用logging时,x模块导入了log.py,y模块导入了log.p ...
- springdata-jpa 八种查询方法
使用:maven+Spring+jpa+Junit4 查询方式:SQL,JPQL查询,Specification多条件复杂查询 返回类型:list<POJO>,list<Stinrg ...
- 迅为iMX6UL Cortex-A7架构单核ARM开发板接口介绍-支持定制
支持商业级和工业级核心板 1. POWER 电源接口电源输入为 5V/2A+,给核心板提供 5V 电源,给底板供电.原理图部分如下图所示. 电源接口位置如下图所示. 2. SWITCH 电源开关轻触电 ...
- CSS 功能简介
CSS的功能主要包括节点管理(Node Management,以下简称NM)和组管理(Group Management,以下简称GM)两部分,都是由守护进程ocssd.bin 来实现的,这是个多线程的 ...