Restrictions.like() 模糊查询,以及使用DetachedCriteria查询的一般用法

2016-10-10 16:52:38                                                 SSH框架学习                    共1899人围观                    0个不明物体                   

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查询的一般用法的更多相关文章

  1. 通过带参数的Sql语句来实现模糊查询(多条件查询)

    #region 通过带参数的Sql语句来实现模糊查询(多条件查询) StringBuilder sb = new StringBuilder("select * from books&quo ...

  2. NHibernate系列文章二十五:NHibernate查询之Query Over查询(附程序下载)

    摘要 这一篇文章介绍在NHibernate 3.2里引入的Query Over查询,Query Over查询跟Criteria查询类似.首先创建IQueryOver对象,然后通过调用该对象的API函数 ...

  3. Thinkphp查询 1.查询方式 2.表达式查询 3.快捷查询 4.区间查询 5.组合查询 6.统计查询 7.动态查询 8.SQL 查询

    1.使用字符串作为条件查询 $user = M('User'); var_dump($user->where('id=1 AND user="蜡笔小新"')->sele ...

  4. MySQL数据库6 -查询基础,简单查询,条件查询,对查询结果排序

    一.SELECT语句 SELECT COL1,COL2,....COLn FROM TABLE1,TABLE2,....TABLEn [WHERE CONDITIONS] -- 查询条件 [GROUP ...

  5. Atitit.Hibernate中Criteria 使用总结and 关联查询 and 按照子对象查询 o9o

    Atitit.Hibernate中Criteria 使用总结and 关联查询 and 按照子对象查询 o9o 1. Criteria,,Criterion ,, 1 <2. 主要的对象黑头配置磊 ...

  6. Atitit.列表页面and条件查询的实现最佳实践(1)------设置查询条件and提交查询and返回json数据

    Atitit.列表页面and条件查询的实现最佳实践(1)------设置查询条件and提交查询and返回json数据 1. 1. 配置条件字段@Conditional 1 1 2. 2. 配置条件字段 ...

  7. Hibernate之QBC查询与本地SQL查询

    1. QBC查询:     QBC 查询就是通过使用Hibernate提供的QueryByCriteria API 来查询对象,这种API封装了SQL语句的动态拼装,对查询提供了更加面向对象的功能接口 ...

  8. Atitit.Hibernate于Criteria 使用汇总and 关系查询 and 按照子对象查询 o9o

    Atitit.Hibernate于Criteria 使用总结and 关联查询 and 依照子对象查询 o9o 1. Criteria,,Criterion ,, 1 <2. 基本的对象黑头配置磊 ...

  9. MySQL数据库—查询基础,简单查询,条件查询,对查询结果排序

    一.SELECT语句 SELECT COL1,COL2,....COLn FROM TABLE1,TABLE2,....TABLEn [WHERE CONDITIONS] -- 查询条件 [GROUP ...

随机推荐

  1. Qt入门-第一个Qt程序

    在安装完之后,迫不及待创建第一个Qt  demo

  2. python之yield函数

    yield的英文单词意思是生产,刚接触Python的时候感到非常困惑,一直没弄明白yield的用法. 只是粗略的知道yield可以用来为一个函数返回值塞数据,比如下面的例子: def addlist( ...

  3. Browser

    浏览器中关于事件的那点事儿 作者: 顽Shi  发布时间: 2014-02-01 20:22  阅读: 7830 次  推荐: 25   原文链接   [收藏]   摘要:事件在Web前端领域有很重要 ...

  4. 开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别(转)

    因CooCox用户数及影响力越来越大,CooCox团队也逐渐提高了对软件及代码协议的重视.在收集整理的过程中,一些归纳好的信息和大家分享一下.首先借用有心人士的一张相当直观清晰的图来划分各种协议:开源 ...

  5. css总结16:HTML5 多媒体音频(Audio)视频(video )

    1 显示嵌入网页中的 MP3 文件: <embed height="50" width="100" src="horse.mp3"&g ...

  6. linux下SVN服务器配置

    SVN服务器配置 1. 安装svn服务 yum install subversion 2. 新建一个目录用于存储SVN所有文件 mkdir /home/svn 3. 创建项目 在上面创建的文件夹中为项 ...

  7. <%@ include > 与< jsp:include >

    include指令表示在JSP编译时插入一个包含文本或者代码的文件,把文件中的文本静态地包含过去.也就是说,会把被包含的页面拷贝到包含的页面中指令所在的位置. 语法格式:<%@ include ...

  8. 【Linux-学习笔记-不定期更新】

    command--help ./当前的路径 目录操作命令: mkdir  创建目录: 创建多级目录 : mkdir -p 查看目录:ls ls -a:显示所有文件,包括隐藏文件 隐藏文件以.开头 ls ...

  9. web利用table表格生成excel格式问题

    当我们把web页面上的table导成excel形式时,有时候我们的数据需要以特定的格式呈现出来,这时候我们就需要给指定的单元格添加一些样式规格信息. 文本:vnd.ms-excel.numberfor ...

  10. 使用C#代码发送邮件,不完整的demo

    作为一只入行不久的小菜鸟,最近接触到利用C#代码发送邮件,做了一点小的demo练习.首先,需要配置,这边我做的是QQ邮箱的相关的练习,练习之前,首先应该解决的问题肯定是关于服务器的配置,这边偷一个懒, ...