关于hibernate中Criteria的使用

本文深入探讨了SQL查询中的各种技巧,包括等价查询、模糊查询、条件查询、时间范围查询及投影查询,并通过实例展示了如何高效地进行数据库操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//创建criteria查询,括号中为要操作的bean

Criteria criteria = session.createCriteria(ScienceCorporation.class);

//criteria添加条件

criteria.add(Restrictions.eq("scName", corporationName));

//criteria排序,括号中为排序条件

criteria.addOrder(Order.asc("jlsj"));

criteria模糊查询,

以整个对象的形式进行模糊查询,criteria.add(Example.create(corporationForm).enableLike(MatchMode.ANYWHERE).excludeProperty(“name”));

corporationForm为对象,MatchMode.ANYWHERE代表查询所有值如果要排除某一个字段就要是用).excludeProperty(“name”));name为要排除的字段名,

注:用Example模糊查询属性类型必须是字符串不能为long或者Int。

criteria普通查询,

//添加查询条件,相当于and
criteria.add(Restrictions.eq("id", "1"));
//但如果我希望使用or时应该怎么做呢,这两个条件可是不同对象里的
Restrictions.or(Restrictions.eq("id", "1"), Restrictions.eq("id", "2"));

//name值为null

 Restrictions.isNull("name")

//number小于5

Restrictions.lt("number", 5)

//number小于等于5

Restrictions.le("number", 5)

//number大于5

Restrictions.gt("number", 5)

//number大于等于5

Restrictions.ge("number", 5)

//返回number的最大值

criteria.setProjection(Projections.projectionList().add(Projections.max("number")));

//根据时间范围查询,(注:默认取出来的时间是0点,那么条件的结束时间应改为23:59:59。否则结束条件当前的数据无法查出来)

criteria.add(Restrictions.between("jljlsj", jljlsjq, jljlsjz)); 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值