Mybatis中的模糊查询

时间:2022-09-05 19:21:10

今天下午做的一个功能,要用到模糊查询,字段是description,刚开始我的写法用的是sql中的模糊查询语句,

Mybatis中的模糊查询

但是这个有问题,只有将字段的全部值传入其中,才能查询,所以不是迷糊查询。

后来经过搜索,发现要加上一个concat字段,要先将字符串拼接后,才能实现模糊查询。

Mybatis中的模糊查询

改成这个样子后,模糊查询功能实现。

在我搜索到的博客中海油别的几种写法,但是试验了两个,有一个成功,另外一个没能实现模糊查询,但是目前还不知道错误在哪里。如果有人知道,请赐教。

他的博客地址是:http://blog.sina.com.cn/s/blog_667bef380101f2da.html

我使用的就是他所说的第一种方法:

1. sql中字符串拼接

 SELECT * FROM tableName WHERE name LIKE CONCAT(CONCAT('%', #{text}), '%');

或者

<if test="ordernum!=null and ordernum!=''">
AND REVERSE(O.ORDERNUM) LIKE REVERSE('%'||#{ordernum,jdbcType=VARCHAR}||'%')
</if>

我就是按照此方法实现了功能。

其实还有种方法:像这样写也行:

Mybatis中的模糊查询

他的第二种方法:

2. 使用 ${...} 代替 #{...}

 SELECT * FROM tableName WHERE name LIKE '%${text}%';

这个我试过之后,发现并没有实现模糊查询的功能,而且目前也不知道哪里出错了,如果有人知道请指教。

他的第种方法:

3. 程序中拼接

Java

   // String searchText = "%" + text + "%";

   String searchText = new StringBuilder("%").append(text).append("%").toString();

   parameterMap.put("text", searchText);

SqlMap.xml

  SELECT * FROM tableName WHERE name LIKE #{text};

这个方法我没有试过,但是还是记录下来,以后试试

他还有第四种方法

4. 大小写匹配查询

   SELECT *  FROM TABLENAME  WHERE UPPER(SUBSYSTEM) LIKE '%' || UPPER('jz') || '%'

或者

 SELECT *   FROM TABLENAME  WHERE LOWER(SUBSYSTEM) LIKE '%' || LOWER('jz') || '%'

正确。

Mybatis中的模糊查询的更多相关文章

  1. 关于mybatis中llike模糊查询中&num;和&dollar;的使用

    模糊查询: 工作中用到,写三种用法吧,第四种为大小写匹配查询 1. sql中字符串拼接 SELECT * FROM tableName WHERE name LIKE CONCAT(CONCAT('% ...

  2. java mybatis 中sql 模糊查询

    示例: like concat('%',#{groupName},'%') //-------------- <select id="findList" resultType ...

  3. 在MyBatis中采用模糊查询变量的引用标志应当是&dollar;而不是&num;

    具体如下例: @Select("select count(*) from hy_stock where name like '%${keyword}%' or code like '%${k ...

  4. Mybatis使用MySQL模糊查询时输入中文检索不到结果怎么办--转自http&colon;&sol;&sol;www&period;jb51&period;net&sol;article&sol;88236&period;htm

    这篇文章主要介绍了Mybatis使用MySQL模糊查询时输入中文检索不到结果的解决办法的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下   项目开发中,在做Mybatis动态查询时,遇到了 ...

  5. Mybatis注解开发模糊查询

    Mybatis注解开发模糊查询 一般在使用mybatis时都是采用xml文件保存sql语句 这篇文章讲一下在使用mybatis的注解开发时,如何进行模糊查询 模糊查询语句写法(在@Select注解中) ...

  6. mysql中的模糊查询

    转载自:http://www.letuknowit.com/archives/90/ MySQL中实现模糊查询有2种方式:一是用LIKE/NOT LIKE,二是用REGEXP/NOT REGEXP(或 ...

  7. mongo中的模糊查询

    以下是一个mongo查询的综合应用,即介绍一个生产中实际应用的模糊查询,当然其实也很简单,主要用到mongo中的模糊查询和$or查询,以及并的关系,下面是一个mongo中的一条记录 { "_ ...

  8. MySQL中的模糊查询和通配符转义

    MySQL中实现模糊查询有2种方式:一是用LIKE/NOT LIKE,二是用REGEXP/NOT REGEXP(或RLIKE/NOT RLIKE,它们是同义词). 第一种是标准的SQL模式匹配.它有2 ...

  9. 【Django】Django中的模糊查询以及Q对象的简单使用

    Django中的模糊查询: 需要做一个查找的功能,所以需要使用到模糊查询. 使用方法是:字段名加上双下划线跟上contains或者icontains,icontains和contains表示是否区分大 ...

随机推荐

  1. jQuery extend扩展String原型

    jQuery.extend(String.prototype, { isPositiveInteger:function(){ return (new RegExp(/^[1-9]\d*$/).tes ...

  2. 武汉Uber优步司机奖励政策(2月1日~2月7日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  3. RandomAccessFile和memory-mapped files

    [0]README 0.1) 本文描述转自 core Java volume 2, 旨在理解 java流与文件——RandomAccessFile类解析 的相关知识: 0.1) 本文 转自: http ...

  4. HDU5057&lpar;分块&rpar;

    Argestes and Sequence Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Ot ...

  5. Python学习之数据类型

    整数 Python可以处理任意大小的整数,在程序中的表示方法和数学上的写法一模一样,例如:1,100,-8080,0,等等. 用十六进制表示整数比较方便,十六进制用0x前缀和0-9,a-f表示,例如: ...

  6. 五分钟上手Markdown

    Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式.------百度百科 话不多说,开始发车!总共10个标签,五分钟足矣,毕竟基本没难度 ...

  7. Linux服务器配置(一)

    Linux服务器配置(一) jdk,tomcat,nginx记录 最近公司买了三台服务器System x3650 M5用来跑公司的项目.现,记录一下真机部署与后期维护历程~ 因为系统是服务器买来就装好 ...

  8. TensorFlow 代码行统计

    https://github.com/tensorflow/tensorflow.git

  9. 【转】GPS网平差

    进行GPS网平差的目的主要有三个: (1)消除由观测量和已知条件中存在的误差所引起的GPS网在几何上的不一致.包括闭合环闭合差不为0:复测基线较差不为0:通过由基线向量所形成的导线,将坐标由一个已知点 ...

  10. 《node&period;js权威指南》读书笔记

    第一章 node.js介绍 非阻塞型I/O机制 当在访问数据库取得搜索结果的时候,在开始访问数据库之后,数据库返回结果之前,存在一段等待时间. 在传统的单线程处理机制中,在执行了访问数据库的代码之后, ...