hibernate----(Hql)另一种查询---利用Criteria类
package com.etc.test;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Restrictions;
import com.etc.dao.HibernateSessionFactory;
import com.etc.entity.Person;
import com.etc.entity.Sex;
public class cri查询
{
static void 基础的cri查询()
{
//1 获取session连接
Session s = HibernateSessionFactory.getSession();
//2 获取Criteria对象(查询标准)
Criteria cri = s.createCriteria(Person.class);
//3 配置各种查询约束条件
//添加约束:pid等于1
cri.add(Restrictions.ge("pid", 2))
.add(Restrictions.like("pname", "老%"));
/*
Criteria cri2 = s.createCriteria(Sex.class);
cri2.add(Restrictions.sizeEq("persons", 3));
*/
//cri.add(Restrictions.or(Restrictions.ge("pid", 2), Restrictions.like("pname", "老%")));
//4 查询结果
/*
List<Sex> list = cri2.list();
for(Sex sex:list)
{
System.out.println(sex);
}
*/
List<Person> list = cri.list();
for(Person p:list)
{
System.out.println(p);
}
//5 关闭
HibernateSessionFactory.closeSession();
}
static void cri关联条件查询()
{
//例子:找出性别含有”未知“关键字的所有人
//1 获取session连接
Session s = HibernateSessionFactory.getSession();
//2 获取Criteria对象(查询标准)
Criteria cri1 = s.createCriteria(Person.class);
//3 创建关联对象的查询cri对象
Criteria cri2 = cri1.createCriteria("sex");
cri2.add(Restrictions.like("sexname", "%未知%"));
List<Person> list = cri1.list();
for(Person p:list)
{
System.out.println(p);
}
}
static void 离线查询()
{
//1 在未进行数据库连接时,创建离线查询的对象
DetachedCriteria dri = DetachedCriteria.forClass(Person.class);
dri.add(Restrictions.eq("pid", 2));
//2 一旦发现处于连接状态,则可将离线查询转出在线查询
Session s = HibernateSessionFactory.getSession();
Criteria cri = dri.getExecutableCriteria(s);
//3 执行查询
List<Person> list = cri.list();
for(Person p:list)
{
System.out.println(p);
}
}
public static void main(String[] args)
{
//基础的cri查询();
//cri关联条件查询();
离线查询();
}
}
hibernate----(Hql)另一种查询---利用Criteria类的更多相关文章
- Hibernate HQL中的子查询
子查询是SQL语句中非常重要的功能特性,它可以在SQL语句中利用另外一条SQL语句的查询结果,在Hibernate中HQL查询同样对子查询功能提供了支持. 如下面代码所示: List list=s ...
- Hibernate HQL和原生SQL查询的一点区别
1.createSQLQuery 1.1默认查询的结果为BigDecimal 1.2通过addScalar("CGD_ID", StandardBasicTypes.LONG)可以 ...
- Hibernate的四种查询方式(主键查询,HQL查询,Criteria查询,本地sql查询)和修改和添加
Hibernate的添加,修改,查询(三种查询方式)的方法: 案例演示: 1:第一步,导包,老生常谈了都是,省略: 2:第二步,创建数据库和数据表,表结构如下所示: 3:第三步创建实体类User.ja ...
- Hibernate框架之HQL查询与Criteria 查询的区别
Hibernate框架提供了HQL查询和Criteria 查询.下面对这两种查询分别做个例子.也好对这两种查询方法有个大概的了解.就用房屋信息表做例子,查询所有房屋信息. HQL语句查询所有房屋信息: ...
- hibernate框架学习笔记7:HQL查询、Criteria查询简介
HQL查询:hibernate独有的查询语言 适用于不复杂的多表查询 示例: 实体类: package domain; public class Customer { private Long cus ...
- 第六讲(二) Hibernate HQL查询
HQL查询:Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Lanaguage)查询提供了更加丰富的和灵活的查询特性,因此Hibe ...
- Hibernate HQL查询:
Hibernate HQL查询:Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Lanaguage)查询提供了更加丰富的和灵活的查 ...
- hibernate框架学习之数据查询(HQL)
lHibernate共提供5种查询方式 •OID数据查询方式 •HQL数据查询方式 •QBC数据查询方式 •本地SQL查询方式 •OGN数据查询方式 OID数据查询方式 l前提:已经获取到了对象的OI ...
- 转: Hibernate HQL查询 插入 更新(update)实例
1.实体查询:有关实体查询技术,其实我们在先前已经有多次涉及,比如下面的例子:String hql=”from User user ”;List list=session.CreateQuery(hq ...
随机推荐
- VS2010+MVC4+Spring.NET2+NHibernate4-传统三层架构-前篇
VS2010+MVC4+Spring.NET2+NHibernate4 - 传统三层架构 - 前篇 一直追求使用开源项目,就因一个字:懒! 一直想整理一下的,却一直懒到现在!从当初用的MVC3到现在的 ...
- 【转】赶集网mysql开发36军规
原文链接:https://segmentfault.com/a/1190000004711147 写在前面的话:总是在灾难发生后,才想起容灾的重要性:总是在吃过亏后,才记得曾经有人提醒过. (一)核心 ...
- 【JavaEE企业应用学习记录】验证配置
package sanglp; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.validat ...
- 现代软件工程 第七章 【MSF】练习与讨论
7.7 移山开发方法——比TFS敏捷更精简 几个软件学院的学生来请教阿超,同学们自豪地说,我们要用全套TFS敏捷开发模式开发项目! 真的?阿超不敢相信. 同学: 对!我们要用全5个工作项类型 – 任 ...
- Oracle空串与null的处理
来源于:http://blog.itpub.net/24870090/viewspace-1057853/ Oracle空串与null的处理[@more@] Oracle中的空字符串基本上是被当成空N ...
- ubuntu14.04 安装配置JDK1.7
1,下载jdk-7u45-linux-x64.tar.gz 网址:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downlo ...
- zabbix 微信报警
http://blog.csdn.net/wh211212/article/details/52735236 Zabbix可以通过多种方式把告警信息发送到指定人,常用的有邮件,短信报警方式,但是越来越 ...
- ( 转 ) Android自绘字体大小paint.settextsize随分辨率大小变化
1.获取当前设备的屏幕大小 DisplayMetrics displayMetrics = new DisplayMetrics(); this.getWindowManager().getDefau ...
- FastDFS搭建及java整合代码【转】
FastDFS软件介绍 1.什么是FastDFS FastDFS是用C语言编写的一款开源的分布式文件系统.FastDFS为互联网量身定制,充分考虑了冗余备份.负载均衡.线性扩容等机制,并注重高可用.高 ...
- innerHTML和appendChild的性能
目测innerHTML比appendChild好了3到4倍, 但是界面渲染还是很慢啊: chrome结果 /** *chrome浏览器; * innerHTML appendChild * 1千条的 ...