Hibernate的学习之路十八(Criteria的查询简单)

前言

今天继续学习Hibernate的Criteria接口,这个接口更适用于条件的查询。只不过比HQL麻烦。是一个完全面向对象的编程。

分析



Criteria查询接口(做条件查询非常合适)

1. 具体的查询代码如下
    // 1.查询所有记录
    /*Criteria criteria = session.createCriteria(Customer.class);
    List<Customer> list = criteria.list();
    System.out.println(list);*/

    // 2.条件查询
    /*Criteria criteria = session.createCriteria(Customer.class);
    criteria.add(Restrictions.eq("name", "李健"));
    List<Customer> list = criteria.list();
    System.out.println(list);*/

    // 3.条件查询
    /*Criteria criteria = session.createCriteria(Customer.class);
    criteria.add(Restrictions.eq("name", "李健"));
    criteria.add(Restrictions.eq("age", 38));
    List<Customer> list = criteria.list();
    System.out.println(list);*/


代码如下:
        这个接口是完全的面向对象编程了,之前的HQL方式,还有写sql代码,这个完全不需要。
        Criterion 是Hibernate提供的条件查询的对象,想传入条件的使用的工具类Restrictions。
        

	/**
	 * 按条件的查询,写法很麻烦
	 */
	@Test
	public void run6(){
		Session session = HibernateUtils.getSession();
		Transaction tr = session.beginTransaction();
		// 先获取到Criteria接口
		Criteria criteria = session.createCriteria(User.class);
		// 添加查询的条件  select * from t_user where age > 18
		// Criterion 是Hibernate提供的条件查询的对象,想传入条件的使用的工具类Restrictions
		
		// Restrictions提供的静态的方法,拼接查询的条件
		criteria.add(Restrictions.gt("age", 18));
		// 继续添加条件
		criteria.add(Restrictions.like("name", "%小%"));
		
		// 没有添加条件,查询所有的数据
		List<User> list = criteria.list();
		System.out.println(list);
		tr.commit();
		session.close();
	}
	
	/**
	 * Criteria接口:条件查询,非常适合
	 */
	@Test
	public void run5(){
		Session session = HibernateUtils.getSession();
		Transaction tr = session.beginTransaction();
		// 先获取到Criteria接口
		Criteria criteria = session.createCriteria(User.class);
		// 没有添加条件,查询所有的数据
		List<User> list = criteria.list();
		System.out.println(list);
		tr.commit();
		session.close();
	}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值