做项目遇到了个奇怪的问题,项目里面要对商品、账户、进行分别的多条件查询,于是我就采用动态多条件分页查询,起初在做账户部分的时候Mybatis是这样写的

<!-- 动态多条件分页查询 -->
<select id="searchPageUseDyc" parameterType="page" resultMap="accountResultMap">
select acc_id,acc_login,acc_name,acc_pass
from account
<where>
<if test="paramsEntity.accId!=null">
and acc_id like #{paramsEntity.accId}
</if>
<if test="paramsEntity.accLogin!=null">
and acc_login like #{paramsEntity.accLogin}
</if>
<if test="paramsEntity.accName!=null">
and acc_name like #{paramsEntity.accName}
</if>
<if test="paramsEntity.accPass!=null">
and acc_pass like #{paramsEntity.accPass}
</if>
</where>
limit #{start},#{rows}
</select>

like 后面直接跟 #{paramsEntity.accName} 不需要添加单引号

然后完成商品查询的时候我一样写了一套

<!-- 动态分页多条件查询(找内容) -->
<select id="searchPageUseDyc" parameterType="page" resultMap="goodsResultMap">
select goods_Id,goods_name,goods_unit,goods_type,goods_color,goods_store,goods_limit,goods_commission,goods_producer,goods_remark,goods_sel_price,goods_buy_price
from goods
<where>
<if test="paramsEntity.goodsId!=null">
        and goods_Id like ${paramsEntity.goodsId}
      </if>
<if test="paramsEntity.goodsName!=null">
        and goods_name like ${paramsEntity.goodsName}
      </if>
<if test="paramsEntity.goodsUnit!=null">
        and goods_unit like ${paramsEntity.goodsUnit}
      </if>
<if test="paramsEntity.goodsType!=null">
        and goods_type like ${paramsEntity.goodsType}
      </if>
<if test="paramsEntity.goodsColor!=null">
        and goods_color like ${paramsEntity.goodsColor}
      </if>
<if test="paramsEntity.goodsStore!=null">
        and goods_store like ${paramsEntity.goodsStore}
      </if>
<if test="paramsEntity.goodsLimit!=null">
        and goods_limit like ${paramsEntity.goodsLimit}
      </if>
<if test="paramsEntity.goodsCommission!=null">
        and goods_commission like ${paramsEntity.goodsCommission}
      </if>
<if test="paramsEntity.goodsProducer!=null">
        and goods_producer like ${paramsEntity.goodsProducer}
      </if>
<if test="paramsEntity.goodsRemark!=null">
        and goods_remark like ${paramsEntity.goodsRemark}
      </if>
<if test="paramsEntity.goodsSelPrice!=null">
        and goods_sel_price like ${paramsEntity.goodsSelPrice}
      </if>
<if test="paramsEntity.goodsBuyPrice!=null">
        and goods_buy_price like ${paramsEntity.goodsBuyPrice}
      </if>
</where>
limit #{start},#{rows}
</select>

但是运行报错了!!!

错误信息You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%% limit 0,3' at line 3

然后我就给单引号添加上了,然后居然就成了,代码这样子

<!-- 动态分页多条件查询(找内容) -->
<select id="searchPageUseDyc" parameterType="page" resultMap="goodsResultMap">
select goods_Id,goods_name,goods_unit,goods_type,goods_color,goods_store,goods_limit,goods_commission,goods_producer,goods_remark,goods_sel_price,goods_buy_price
from goods
<where>
<if test="paramsEntity.goodsId!=null">
        and goods_Id like '${paramsEntity.goodsId}'
      </if>
<if test="paramsEntity.goodsName!=null">
        and goods_name like '${paramsEntity.goodsName}'
      </if>
<if test="paramsEntity.goodsUnit!=null">
        and goods_unit like '${paramsEntity.goodsUnit}'
      </if>
<if test="paramsEntity.goodsType!=null">
        and goods_type like '${paramsEntity.goodsType}'
      </if>
<if test="paramsEntity.goodsColor!=null">
        and goods_color like '${paramsEntity.goodsColor}'
      </if>
<if test="paramsEntity.goodsStore!=null">
        and goods_store like '${paramsEntity.goodsStore}'
      </if>
<if test="paramsEntity.goodsLimit!=null">
        and goods_limit like '${paramsEntity.goodsLimit}'
      </if>
<if test="paramsEntity.goodsCommission!=null">
        and goods_commission like '${paramsEntity.goodsCommission}'
      </if>
<if test="paramsEntity.goodsProducer!=null">
        and goods_producer like '${paramsEntity.goodsProducer}'
      </if>
<if test="paramsEntity.goodsRemark!=null">
        and goods_remark like '${paramsEntity.goodsRemark}'
      </if>
<if test="paramsEntity.goodsSelPrice!=null">
        and goods_sel_price like '${paramsEntity.goodsSelPrice}'
      </if>
<if test="paramsEntity.goodsBuyPrice!=null">
        and goods_buy_price like '${paramsEntity.goodsBuyPrice}'
      </if>
</where>
limit #{start},#{rows}
</select>

然后我就去查文档,光放文档给出的也是不用加单引号的!!

<select id=”findActiveBlogLike”
  parameterType=”Blog” resultType=”Blog”>
  SELECT * FROM BLOG
  <where>
    <if test=”state != null”>
      state = #{state}
    </if>
    <if test=”title != null”>
      AND title like #{title}
    </if>
    <if test=”author != null and author.name != null”>
      AND title like #{author.name}
    </if>
  </where>
</select>

我的问题还真不知道出在哪里!!!奇了怪了,有空再去搞清楚吧 !!!!

MyBatis做动态模糊查询时,like后面要不要加单引号??的更多相关文章

  1. Mybatis使用MySQL模糊查询时输入中文检索不到结果怎么办--转自http://www.jb51.net/article/88236.htm

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

  2. mybatis做like模糊查询

    http://www.cnblogs.com/cyttina/p/3894428.html

  3. Mybatis使用MySQL进行模糊查询时输入中文检索不到结果

    Mybatis使用MySQL进行模糊查询时输入中文检索时,需要在jdbcURL后增加参数   ?useUnicode=true&characterEncoding=UTF-8

  4. input动态模糊查询的实现方式

    最近在用jQuery实现动态模糊查询的时候,找了挺久都没有找到像Vue.js的watch属性这么好用的动态模糊查询方法.就分享一下目前遇到的坑和可以实现动态查询的几种方式. 1.jQuery的chan ...

  5. Mybatis注解开发模糊查询

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

  6. 一个jpa动态模糊查询的实现

    最近一直在是用spring data jpa,使用起来确实方便,如果是单表的操作基本上通过方法名都可以实现,下面是一个 Specification 实现动态模糊查询的例子这个查询是通过JpaSpeci ...

  7. Hibernate使用createSqlQuery进行模糊查询时找不到数据

    1. 首先明确一点,使用createSqlQuery如下两种方式的占位符都可以使用,这个在官方的文档可以查到. 注意使用模糊查询时,赋值两边不可以添加单引号. Query query = sess.c ...

  8. 【mybatis】mybatis自定义动态字段查询,mybatis实现动态字段查询,如果某个条件为null,则不查询某个字段,否则就查询某个字段

    mybatis实现动态字段查询,如果某个条件为null,则不查询某个字段,否则就查询某个字段 先看一下 怎么实现动态的自定义字段查询: 例如: 而field 就是数据表中的某一个字段 String f ...

  9. Mybatis框架的模糊查询(多种写法)、删除、添加(四)

    学习Mybatis这么多天,那么我给大家分享一下我的学习成果.从最基础的开始配置. 一.创建一个web项目,看一下项目架构 二.说道项目就会想到需要什么jar 三.就是准备大配置链接Orcl数据库 & ...

随机推荐

  1. 利用$.getJSON() 跨域请求操作

    原文发布时间为:2011-01-14 -- 来源于本人的百度文章 [由搬家工具导入] $.get 没有权限? $.post 没有权限? 因为他们都不能跨域,那就用 $.getJSON() 吧 利用$. ...

  2. .NET获取URL的各种方式及其区别

    原文发布时间为:2009-11-11 -- 来源于本人的百度文章 [由搬家工具导入] http://www.test.com/testweb/default.aspx?id=1 Request.App ...

  3. jenkins 管理员账号丢失

    在jenkins 设置权限后,无法登录 参考: 如何修改jenkins配置权限   https://zhidao.baidu.com/question/497256501658876284.html

  4. WKWebView携带不上cookie的问题处理

    自从WKWebView推出后Apple官方及众多开发者都推荐使用它代替UIWebView,确实通过加载速度.占用内存方面的对比都要好上几个档次,索性就把项目中的浏览器控件换成了WKWebView,一开 ...

  5. 洛谷 P1056 排座椅【贪心/结构体排序】

    题目描述 上课的时候总会有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情.不过,班主任小雪发现了一些有趣的现象,当同学们的座次确定下来之后,只有有限的D对同学上课时会交头接耳.同学 ...

  6. CVPR 2019|PoolNet:基于池化技术的显著性检测 论文解读

    作者 | 文永亮 研究方向 | 目标检测.GAN 研究动机 ​ 这是一篇发表于CVPR2019的关于显著性目标检测的paper,在U型结构的特征网络中,高层富含语义特征捕获的位置信息在自底向上的传播过 ...

  7. BZOJ 4543 2016北京集训测试赛(二)Problem B: thr 既 长链剖分学习笔记

    Solution 这题的解法很妙啊... 考虑这三个点可能的形态: 令它们的重心为距离到这三个点都相同的节点, 则其中两个点分别在重心的两棵子树中, 且到重心的距离相等; 第三个点可能在重心的一棵不同 ...

  8. 如何在SQLite中创建自增字段

      SQLite 简单的回答:一个声明为 INTEGER PRIMARY KEY 的字段将自动增加. 这里是详细的答案: 从 SQLite 的 2.3.4 版本开始,如果你将一个表中的一个字段声明为 ...

  9. Beginning Auto Layout Tutorial in iOS 7: Part 6

    Gallery example 屏幕有四个分开的相同的矩形,每个矩形有一个label和一个image view.创建一个Gallery的项目.在Main.storyboard中,拖拉一个view大小为 ...

  10. Storyboards Tutorial 01

    Storyboarding 是在ios 5时候引进入的一个非常出色的特性.节省了为app创建user interfaces的时间.