Criteria查询

//Criteria查询

	public void testCriteria(){
		session=HibernateUtil.getSession();
//session.createCriteria(.class);
		Criteria criteria=session.createCriteria(Emp.class);
		List<Emp> elist=criteria.list();
		for (Emp e : elist) {
			System.out.println(e.getEname() + " : " + e.getSal());
		}
		HibernateUtil.closeSession();		
	}

//Criteria约束查询:eq、lt、le、gt、ge

	public void testCriteria2(){
		session=HibernateUtil.getSession();
		Criteria criteria=session.createCriteria(Emp.class);
		//Restrictions.lt("类的属性",查询目标值);
		Criterion criterion=Restrictions.lt("sal",2452D );
		criteria.add(criterion);
		List<Emp> elist=criteria.list();
		for (Emp e : elist) {
			System.out.println(e.getEname() + " : " + e.getSal());
		}
		HibernateUtil.closeSession();
		
	}

//简化写

	public void testCriteria2(){
		session=HibernateUtil.getSession();
		//Criteria criteria=session.createCriteria(Emp.class);
		//Restrictions.lt("类的属性",查询目标值);
		//Criterion criterion=Restrictions.lt("sal",2452D );
		List<Emp> elist=session.createCriteria(Emp.class).add(Restrictions.lt("sal",2452D )).list();
		for (Emp e : elist) {
			System.out.println(e.getEname() + " : " + e.getSal());
		}
		HibernateUtil.closeSession();		
	}

@org.junit.Test
// Criteria多约束查询:eq、lt、le、gt、ge
//.ignoreCase(),忽略大小写
//2452D/2452d:声明为Double类型
//.like(“类的属性”,“匹配的属性值”,MatchMode匹配模式);
//.ilike();自动忽略大小写

	public void testCriteria3() {
		session = HibernateUtil.getSession();
		// Criteria criteria=session.createCriteria(Emp.class);
		// Restrictions.lt("类的属性",查询目标值);
		// Criterion criterion=Restrictions.lt("sal",2452D );
		List<Emp> elist = session.createCriteria(Emp.class)
				.add(Restrictions.lt("sal", 2452D))
				.add(Restrictions.eq("job", "SAlesman").ignoreCase())
				.add(Restrictions.ilike("ename", "R",MatchMode.ANYWHERE)).list();
		for (Emp e : elist) {
			System.out.println(e.getEname() + " : " + e.getSal());
		}
		HibernateUtil.closeSession();

	}

//Criteria动态查询
//先构建一个EMP控制条件类,ename、job、sal三个属性
//如果某个属性不为空,就给criteria查询添加约束条件
//相对于SQL和HQL查询,避免了两次判断是否为空的添加约束过程
//封装类型的数值默认为null,int/long小写数值,默认为0

public void dynamicCriteria() {
		session = HibernateUtil.getSession();
		EmpCondition ec=new EmpCondition();
		ec.setEname("R");
		ec.setJob("SALESMAN");
		ec.setSal(2452D);
		Criteria criteria = session.createCriteria(Emp.class);
		if(ec.getEname()!=null&&!ec.getEname().trim().equals("")){
			criteria.add(Restrictions.ilike("ename",ec.getEname(),MatchMode.ANYWHERE));
		}		
		if(ec.getJob()!=null&&!ec.getJob().trim().equals("")){
			criteria.add(Restrictions.ilike("job",ec.getJob(),MatchMode.EXACT));
		}
		if(ec.getSal()!=null){
			criteria.add(Restrictions.le("sal", ec.getSal()));
		}
		List<Emp> elist=criteria.list();
		for (Emp e : elist) {
			System.out.println(e.getEname() + " : " + e.getSal());
		}
		HibernateUtil.closeSession();

	}
**//between("属性",下限值,上限值);**
	public void testBetweenAnd(){
		session=HibernateUtil.getSession();
		Criteria criteria=session.createCriteria(Emp.class);		
		criteria.add(Restrictions.between("sal", 1500D, 3500D));
		List<Emp> elist=criteria.list();
		for (Emp e : elist) {
			System.out.println(e.getEname() + " : " + e.getSal());
		}
		HibernateUtil.closeSession();
	}
**//in("属性",List集合)**
	public void inCriteria(){
		session = HibernateUtil.getSession();
		List<String> slist=new ArrayList<String>();
		slist.add("SALESMAN");
		slist.add("MANAGER");
		Criteria criteria=session.createCriteria(Emp.class);
		criteria.add(Restrictions.in("job", slist));
		List<Emp> elist=criteria.list();
		for (Emp e : elist) {
			System.out.println(e.getEname() + " : " + e.getSal());
		}
		HibernateUtil.closeSession();
	}
**// disjunction-Criteria中的where或or关系;conjunction:and**
	public void testDisjunction() {
		session = HibernateUtil.getSession();
		Criteria criteria = session.createCriteria(Emp.class);
		criteria.add(
				Restrictions
						.disjunction()
						.add(Restrictions.between("sal", 1500D, 3500D))
						.add(Restrictions.ilike("ename", "S",
								MatchMode.ANYWHERE))).add(
				Restrictions.ilike("job", "R", MatchMode.ANYWHERE));
		List<Emp> elist = criteria.list();
		for (Emp e : elist) {
			System.out.println(e.getEname() + " : " + e.getJob() + " : "
					+ e.getSal());
		}
		HibernateUtil.closeSession();
	}
**//addOrder(Order.asc/desc(""))**	
public void testOrder(){
		session=HibernateUtil.getSession();
		Criteria criteria=session.createCriteria(Emp.class);
		List<Emp> elist=criteria.addOrder(Order.asc("sal")).list();
		for (Emp e : elist) {
			System.out.println(e.getEname() + " : " + e.getJob() + " : "
					+ e.getSal());
		}
		HibernateUtil.closeSession();
	}
**//isEmpty:判断集合属性是否没有成员**
	public void testIsEmpty(){
		session=HibernateUtil.getSession();
		Criteria criteria=session.createCriteria(Dept.class);
		criteria.add(Restrictions.isEmpty("emps"));
		List<Dept> dlist=criteria.list();
		for(Dept d:dlist){
			System.out.println(d.getDeptName()+" "+d.getDeptNo()+" "+d.getEmps());
		}
		
		HibernateUtil.closeSession();
	}
**//isNull/isNotNull:属性值是否为空**
	public void testIsNull(){
		session = HibernateUtil.getSession();
		Criteria criteria=session.createCriteria(Emp.class);
		criteria.add(Restrictions.isEmpty("job"));		
		List<Emp> elist=criteria.list();
		for (Emp e : elist) {
			System.out.println(e.getEname() + " : " + e.getJob() + " : "
					+ e.getSal());
		}
		HibernateUtil.closeSession();
	}

//分页Page.setFirstResult(0).setMaxResult(5)

	public void testPage(){
		session=HibernateUtil.getSession();
		Criteria criteria=session.createCriteria(Emp.class);
		List<Emp> elist=criteria.addOrder(Order.asc("sal")).setFirstResult(0).setMaxResults(5).list();
		for (Emp e : elist) {
			System.out.println(e.getEname() + " : " + e.getJob() + " : "
					+ e.getSal());
		}
		HibernateUtil.closeSession();
	}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值