Hibernate的Criteria接口
来源:互联网 发布:好看的照相软件 编辑:程序博客网 时间:2024/05/16 09:34
一 Criteria接口
Criteria是一种比HQL更面向对象的查询方式。
Criteria的创建方式:
Criteria crit = session.createCriteria(DomainClass.class);
简单属性条件
criteria.add(Restrictions.eq(propertyName, value)),
criteria.add(Restrictions.eqProperty(propertyName,otherPropertyName))
最简单案例:返回50条记录
Criteria crit = sess.createCriteria(Cat.class);
crit.setMaxResults(50);
List cats = crit.list();
限制结果集内容
List cats = sess.createCriteria(Cat.class).add( Restrictions.like("name", "Fritz%") ).add( Restrictions.between("weight",minWeight, maxWeight) ).list();
二 实战
package com.cakin.view;import java.util.Date;import java.util.List;import javax.management.RuntimeErrorException;import org.hibernate.Criteria;import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import org.hibernate.criterion.Order;import com.cakin.domain.Employee;import com.cakin.util.HibernateUtil;import com.cakin.util.MySessionFactory;public class TestMain { /** * @param args */ public static void main(String[] args) { Session session=HibernateUtil.getCurrentSession(); Transaction ts=null; try { ts=session.beginTransaction(); Criteria cri=session.createCriteria(Employee.class). setMaxResults(2).addOrder(Order.desc("id") ); List<Employee> list=cri.list(); for(Employee e: list){ System.out.println(e.getName()); } ts.commit(); } catch (Exception e) { if(ts!=null){ ts.rollback(); } throw new RuntimeException(e.getMessage()); }finally{ //关闭session if(session!=null&&session.isOpen()){ session.close(); } } }}
三 测试结果
Hibernate:
select
this_.id as id0_0_,
this_.name as name0_0_,
this_.email as email0_0_,
this_.hiredate as hiredate0_0_
from
employee this_
order by
this_.id desc limit ?
cakin
xiaoming
四 Criteric优点和缺点
优点:更加面向对象,如果你对hql语句不太了解,可以使用。
缺点:功能不如hql强大.而且hql是hibernate官方推荐使用的语句。
五 实例
package com.cakin.view;import java.util.List;import org.hibernate.Criteria;import org.hibernate.Session;import org.hibernate.Transaction;import org.hibernate.criterion.Restrictions;import com.cakin.util.*;import com.sina.domain.Course;import com.sina.domain.Studcourse;import com.sina.domain.Student;public class TestMain2 { /** * @param args */ public static void main(String[] args) { //查询年龄大于10岁的学生 criteria Session s=HibernateUtil.getCurrentSession(); Transaction tx=s.beginTransaction(); Criteria cri=s.createCriteria(Student.class); //添加检索条件 cri.add(Restrictions.gt("sage", new Integer(10))); List<Student> list=cri.list(); for(Student s1: list){ System.out.println(s1.getSname()); } tx.commit(); }}
六 测试结果
林青霞
刘德华
成龙
林可欣
周华健
周润发
阅读全文
0 0
- Hibernate的Criteria接口
- Hibernate的HQL和Criteria接口
- Hibernate Criteria 接口
- Hibernate-Criteria接口
- Hibernate的Query接口和Criteria接口的区别
- hibernate中Criteria接口原理
- Hibernate——Criteria接口
- hibernate criteria的使用
- hibernate Criteria 的使用
- hibernate criteria的例子
- Hibernate的Criteria方法
- hibernate的Criteria Query
- Hibernate的Criteria Query
- hibernate的criteria
- Hibernate的Criteria查询
- Hibernate 的Criteria Query
- Hibernate的Criteria的用法
- Hibernate 的 Criteria的用法
- hadoop5
- Python 自定义数据库连接类
- 在映射文件中得到hql语句
- hql使用子查询
- HQL多表查询
- Hibernate的Criteria接口
- Hibernate创建数据库的四种方式
- hibernate若干细节
- 浏览器中使用Github
- Github客户端的使用
- 在百度“All in AI”时代,百度地图扮演着什么角色
- 2020年产值或达2250亿美元?工业互联网正成为下一个风口
- 细数国内市场智能语音开放平台有哪些?
- Resultick:近半数营销人员认为“人工智能”的概念被滥用