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 ...
随机推荐
- WP8 对音视频格式支持的完整说明
Supported media codecs for Windows Phone http://msdn.microsoft.com/en-us/library/windowsphone/develo ...
- difference between append and appendTo
if you need append some string to element and need set some attribute on these string at the same ti ...
- 十天冲刺---Day3
站立式会议 站立式会议内容总结: git上Issues新增内容: 燃尽图 照片 组长情绪爆炸是很可怕的事情.这里自责一下. 进度缓慢是一件非常头疼的事情.还有每个人的时间都很紧张,除了学习,还有各种工 ...
- [转]跟我一起学extjs5(02--建立工程项目)
原文地址:http://blog.csdn.net/jfok/article/details/35569057 目录(?)[+] 跟我一起学extjs5(02--建立工程项目) 我们先建立一个java ...
- 【BZOJ 4515】【SDOI 2016 Round1 Day1 T3】游戏
考场上写了lct,可惜当时对标记永久化的理解并不是十分深刻,导致调一个错误的程序调了4h+,最后这道题爆0了QwQ 现在写了树链剖分,用标记永久化的线段树维护轻重链,对于$s\rightarrow l ...
- 【BZOJ 2038】【2009 国家集训队】小Z的袜子(hose) 分块+莫队
$SDOI2016Day-1$临时抱佛脚学习一下莫队算法$233$ 我预感到自己省选要爆0hhh #include<cmath> #include<cstdio> #inclu ...
- Hessian Matrix
函数\(f\)的Hessian矩阵由是由它的二阶偏导数组成的方阵 \[ H = \begin{bmatrix} \dfrac{\partial^2 f}{\partial x_1^2} & \ ...
- Entity Framework在WCF中序列化的问题
问题描述 如果你在WCF中用Entity Framework来获取数据并返回实体对象,那么对下面的错误一定不陌生. 接收对 http://localhost:5115/ReService.svc 的 ...
- shell中substr总结
(1)awk中函数substr substr(源字符串,开始索引,长度) 开始索引以0开始 示例: awk '{$a=substr($0,0,2);print $a;}' filename 假设文 ...
- iOS推送通知
推送通知 此通知非彼通知. NSNotification是抽象的,看不见的,但是可以监听,属于观察者模式的一种设计模式. 推送通知是可见的,能用肉眼看见的,是真正的和用户打交道的通知. 推送通知分为两 ...