Restrictions.like() 模糊查询,以及使用DetachedCriteria查询的一般用法
Restrictions.like() 模糊查询,以及使用DetachedCriteria查询的一般用法
Restrictions.like() 模糊查询,以及使用DetachedCriteria查询的一般用法
今天测试一个搜索的模块,用到模糊查询,查询是否包含指定对象,又因为使用到了分页
所以我们这里就使用了Restrictions.like() 来处理
这个方法有三个参数
如下
Restrictions.like(propertyName, value, matchMode)
第一个参数表示需要查询的字段名,第二个参数表示需要匹配的数据,第三个参数表示查询的精度,默认是精确匹配,相当于sql的 like 'value'
第三个参数是可选的
第一和第二个参数好理解,主要是第三个参数,他可以是以下的值
MatchMode.EXACT 精确匹配,相当于 like 'value' MatchMode.ANYWHERE 字符串在中间位置,相当于 like '%value%' MatchMode.START 字符串在最前面的位置,相当于“like 'value%' MatchMode.END 字符串在最后面的位置,相当于“like '%value'
默认情况下是第一个,精确匹配
如果你只想使用两个参数,想实现后面的三种查询方法,那我们就需要在参数中构造
如下面的代码
criteria.add(Restrictions.ilike("shopdes", "%"+stext+"%"));
也就是说上面的代码和下面的代码是一样的结果
criteria.add(Restrictions.ilike("shopdes", stext,MatchMode.ANYWHERE));
如果您的代码直接是这样
criteria.add(Restrictions.ilike("shopdes", stext));
那你的结果和上面的结果是不一样的哦,这个是精准查找了,不是模糊查找了
下面的代码也是一个意思
criteria.add(Restrictions.ilike("shopdes", stext+"%"));
criteria.add(Restrictions.ilike("shopdes", stext,MatchMode.START));
下面的代码也是一个意思
criteria.add(Restrictions.ilike("shopdes", "%"+stext)); criteria.add(Restrictions.ilike("shopdes", stext,MatchMode.END));
我们还可以这样进行组合模糊查询,如下代码
criteria.add(Restrictions.or(Restrictions.like("shopdes", stext,MatchMode.ANYWHERE),Restrictions.like("shopname", stext)));
以上代码表示,查询,如果这个字符串和shopdes是模糊匹配,或者和shopnama是精准匹配都符合我们的要求
关于DetachedCriteria的其他一些查询方法,整理如下
Restrictions.eq() 这个就是比较,和java的equalsleisi Restrictions.allEq() 参数为Map对象,使用key/value进行多个等于的对比,相当于多个Restrictions.eq()的效果 Restrictions.gt() 大于
Restrictions.ge() 大于等于 Restrictions.lt() 小于 Restrictions.le() 小于等于 Restrictions.between() 和SQL的between子句类似 Restrictions.in() 对应SQL的in子句 Restrictions.and() and关系 Restrictions.or() or关系 Restrictions.isNull() 判断属性是否为空,为空返回true,否则返回false Restrictions.isNotNull() 与Restrictions.isNull()相反 Order.asc() 根据传入的字段进行升序排序 Order.desc() 根据传入的字段进行降序排序
如果您觉得本文章对您有用,也为了更好的运营博客,您可以点击这里捐助
Restrictions.like() 模糊查询,以及使用DetachedCriteria查询的一般用法的更多相关文章
- 通过带参数的Sql语句来实现模糊查询(多条件查询)
#region 通过带参数的Sql语句来实现模糊查询(多条件查询) StringBuilder sb = new StringBuilder("select * from books&quo ...
- NHibernate系列文章二十五:NHibernate查询之Query Over查询(附程序下载)
摘要 这一篇文章介绍在NHibernate 3.2里引入的Query Over查询,Query Over查询跟Criteria查询类似.首先创建IQueryOver对象,然后通过调用该对象的API函数 ...
- Thinkphp查询 1.查询方式 2.表达式查询 3.快捷查询 4.区间查询 5.组合查询 6.统计查询 7.动态查询 8.SQL 查询
1.使用字符串作为条件查询 $user = M('User'); var_dump($user->where('id=1 AND user="蜡笔小新"')->sele ...
- MySQL数据库6 -查询基础,简单查询,条件查询,对查询结果排序
一.SELECT语句 SELECT COL1,COL2,....COLn FROM TABLE1,TABLE2,....TABLEn [WHERE CONDITIONS] -- 查询条件 [GROUP ...
- Atitit.Hibernate中Criteria 使用总结and 关联查询 and 按照子对象查询 o9o
Atitit.Hibernate中Criteria 使用总结and 关联查询 and 按照子对象查询 o9o 1. Criteria,,Criterion ,, 1 <2. 主要的对象黑头配置磊 ...
- Atitit.列表页面and条件查询的实现最佳实践(1)------设置查询条件and提交查询and返回json数据
Atitit.列表页面and条件查询的实现最佳实践(1)------设置查询条件and提交查询and返回json数据 1. 1. 配置条件字段@Conditional 1 1 2. 2. 配置条件字段 ...
- Hibernate之QBC查询与本地SQL查询
1. QBC查询: QBC 查询就是通过使用Hibernate提供的QueryByCriteria API 来查询对象,这种API封装了SQL语句的动态拼装,对查询提供了更加面向对象的功能接口 ...
- Atitit.Hibernate于Criteria 使用汇总and 关系查询 and 按照子对象查询 o9o
Atitit.Hibernate于Criteria 使用总结and 关联查询 and 依照子对象查询 o9o 1. Criteria,,Criterion ,, 1 <2. 基本的对象黑头配置磊 ...
- MySQL数据库—查询基础,简单查询,条件查询,对查询结果排序
一.SELECT语句 SELECT COL1,COL2,....COLn FROM TABLE1,TABLE2,....TABLEn [WHERE CONDITIONS] -- 查询条件 [GROUP ...
随机推荐
- 443. String Compression字符串压缩
[抄题]: Given an array of characters, compress it in-place. The length after compression must always b ...
- 4-fiddler抓包中文乱码:
接受到的html被压缩了,要解压,在工具栏有decode
- Django框架 之 form组件的钩子
Django框架 之 form组件的钩子 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 3 ...
- 前端基础 之 Bootstrap框架
浏览目录 Bootstrap介绍 为什么要使用Bootstrap? Bootstrap环境搭建 布局容器 栅格系统 Bootstrap全局样式 一.Bootstrap介绍 Bootstrap是Twit ...
- 专题1-MMU-lesson3-MMU配置与使用
1.段方式MMU 利用虚拟地址然后找到物理地址,通过物理地址访问到led,其过程如下: 一个段的大小是[19:0]总共有1M的地址空间. 从上面可知对应GPIO的段物理基地址是0x7f000000.那 ...
- HandleErrorAttribute只能处理httpStatusCode为500的异常(服务器异常)
HandleErrorAttribute源代码: [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inherited ...
- (转)基于MVC4+EasyUI的Web开发框架形成之旅--界面控件的使用
原文地址:http://www.cnblogs.com/wuhuacong/p/3317223.html 在前面介绍了两篇关于我的基于MVC4+EasyUI技术的Web开发框架的随笔,本篇继续介绍其中 ...
- MySQL性能调优与架构设计——第6章 MySQL Server 性能的相关因素
第6章 MySQL Server 性能的相关因素 前言 大部分人都一致认为一个数据库应用系统(这里的数据库应用系统概指所有使用数据库的系统)的性能瓶颈最容易出现在数据的操作方面,而数据库应用系统的大部 ...
- tomcat的内存配置,关于-Xms -Xmx -XX:PermSize -XX:MaxPermSize的理解和区别
JVM按照其存储数据的内容将所需内存分配为堆区与非堆区两个部分:所谓堆区即为通过new的方式创建的对象(类实例)所占用的内存空间:非堆区即为代码.常量.外部访问(如文件访问流所占资源)等.然而虽然ja ...
- 15分XX秒后订单自动关闭(倒计时)
//订单记录 function get_order(){ //请求订单ajax方法 XX.send_api("method",{data},function(){ var date ...