MyBatis做动态模糊查询时,like后面要不要加单引号??
做项目遇到了个奇怪的问题,项目里面要对商品、账户、进行分别的多条件查询,于是我就采用动态多条件分页查询,起初在做账户部分的时候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后面要不要加单引号??的更多相关文章
- Mybatis使用MySQL模糊查询时输入中文检索不到结果怎么办--转自http://www.jb51.net/article/88236.htm
这篇文章主要介绍了Mybatis使用MySQL模糊查询时输入中文检索不到结果的解决办法的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下 项目开发中,在做Mybatis动态查询时,遇到了 ...
- mybatis做like模糊查询
http://www.cnblogs.com/cyttina/p/3894428.html
- Mybatis使用MySQL进行模糊查询时输入中文检索不到结果
Mybatis使用MySQL进行模糊查询时输入中文检索时,需要在jdbcURL后增加参数 ?useUnicode=true&characterEncoding=UTF-8
- input动态模糊查询的实现方式
最近在用jQuery实现动态模糊查询的时候,找了挺久都没有找到像Vue.js的watch属性这么好用的动态模糊查询方法.就分享一下目前遇到的坑和可以实现动态查询的几种方式. 1.jQuery的chan ...
- Mybatis注解开发模糊查询
Mybatis注解开发模糊查询 一般在使用mybatis时都是采用xml文件保存sql语句 这篇文章讲一下在使用mybatis的注解开发时,如何进行模糊查询 模糊查询语句写法(在@Select注解中) ...
- 一个jpa动态模糊查询的实现
最近一直在是用spring data jpa,使用起来确实方便,如果是单表的操作基本上通过方法名都可以实现,下面是一个 Specification 实现动态模糊查询的例子这个查询是通过JpaSpeci ...
- Hibernate使用createSqlQuery进行模糊查询时找不到数据
1. 首先明确一点,使用createSqlQuery如下两种方式的占位符都可以使用,这个在官方的文档可以查到. 注意使用模糊查询时,赋值两边不可以添加单引号. Query query = sess.c ...
- 【mybatis】mybatis自定义动态字段查询,mybatis实现动态字段查询,如果某个条件为null,则不查询某个字段,否则就查询某个字段
mybatis实现动态字段查询,如果某个条件为null,则不查询某个字段,否则就查询某个字段 先看一下 怎么实现动态的自定义字段查询: 例如: 而field 就是数据表中的某一个字段 String f ...
- Mybatis框架的模糊查询(多种写法)、删除、添加(四)
学习Mybatis这么多天,那么我给大家分享一下我的学习成果.从最基础的开始配置. 一.创建一个web项目,看一下项目架构 二.说道项目就会想到需要什么jar 三.就是准备大配置链接Orcl数据库 & ...
随机推荐
- repeater做成gridview【更新删除编辑等】
原文发布时间为:2009-06-14 -- 来源于本人的百度文章 [由搬家工具导入] 不多说,不会说。。看我做的范例。。。 http://download.csdn.net/source/138556 ...
- MVP MVVM MVC
上一篇得到大家的关注,非常感谢.由于自己对于这些模式的理解也是有限,对于MVC,MVP,MVVM这些模式的比较,是结合自己的理解,一些地方不一定准确,需要的朋友可以参考下 上一篇得到大家的关注,非常感 ...
- H5 <audio> 音频标签自定义样式修改以及添加播放控制事件
H5 <audio> 音频标签自定义样式修改以及添加播放控制事件 Dandelion_drq 关注 2017.08.28 14:48* 字数 331 阅读 2902评论 3喜欢 3 说明: ...
- [LeetCode] Best Time to Buy and Sell Stock II 贪心算法
Say you have an array for which the ith element is the price of a given stock on day i. Design an al ...
- AtCoder Regular Contest 077 E - guruguru 线性函数 前缀和
题目链接 题意 灯有\(m\)个亮度等级,\(1,2,...,m\),有两种按钮: 每次将亮度等级\(+1\),如\(1\rightarrow 2,2\rightarrow 3,...,m-1\rig ...
- Berkeley DB Java Edition 简介
一. 简介 Berkeley DB Java Edition (JE)是一个完全用JAVA写的,它适合于管理海量的,简单的数据. l 能够高效率的 ...
- linux多线程学习笔记五--线程安全【转】
转自:http://blog.csdn.net/kkxgx/article/details/7506085 版权声明:本文为博主原创文章,未经博主允许不得转载. 一,线程安全基础 一个函数被称为线程安 ...
- koa2 从入门到进阶之路 (二)
之前的文章我们已经能够在本地启动一个简单的项目,本章我们来看一下 koa 路由,get 传值,动态路由. 一.Koa 路由 路由(Routing)是由一个 URI(或者叫路径)和一个特定的 HTTP ...
- 10.1综合强化刷题 Day3 morning
竞赛时间:????年??月??日??:??-??:?? 题目名称 a b c 名称 a b c 输入 a.in b.in c.in 输出 a.out b.out c.out 每个测试点时限 1s 1s ...
- 洛谷——1968 美元汇率(DP)
题目背景 此处省略maxint+1个数 题目描述 在以后的若干天里戴维将学习美元与德国马克的汇率.编写程序帮助戴维何时应买或卖马克或美元,使他从100美元开始,最后能获得最高可能的价值. 输入输出格式 ...