博客
关于我
mybatis中like的注意
阅读量:374 次
发布时间:2019-03-05

本文共 695 字,大约阅读时间需要 2 分钟。

<!--concat Mysql和 Oracle区别 ,不存在sql注入--> <select id="findUserByLikeName" parameterType="java.lang.String" resultMap="user"> select * from t_user where name like concat('%',#{name,jdbcType=VARCHAR},'%') </select>这样写查询不到特殊字符(如单独的%、/)或者带有特定特殊字符的字符串比如,我们要搜索一个字符串"小汉_",如果直接like "小汉_",那么"_"的作用就是通配符,而不是字符,结果,我们会查到比如"小汉a","小汉b","小汉c",而不是我们需要的   "小汉_".      用LIKE '小汉/_' ESCAPE '/'      '/'表示特殊用法标志。    就会搜索‘小汉_’了。使用ESCAPE解决这个问题<select id="findUserByLikeNamei" parameterType="java.lang.String" resultMap="user">select * from t_user where name like concat('%',#{name,jdbcType=VARCHAR},'%')  ESCAPE '/'</select>

List test1 = userMapper.findUserByLikeName4("/" +name);
对查询的关键字进行的这种处理在代码中可以使用拦截器或者AOP等技术统一处理。

转载地址:http://qemwz.baihongyu.com/

你可能感兴趣的文章
数学建模更新12(数学线性规划模型1)
查看>>
Android,SharedPreferences的使用
查看>>
JPEG压缩技术
查看>>
两款用于检测内存泄漏的软件
查看>>
王爽 《汇编语言》 读书笔记 三 寄存器(内存访问)
查看>>
IDEA出现问题:Received fatal alert: protocol_version 解决方案
查看>>
Airtest自动化测试 Docs airtest.core.android package
查看>>
SVN Unable to connect to a repository at URL 的解决方案
查看>>
Android基本知识
查看>>
命令模式【Command Pattern】
查看>>
OSI 7 层网络模型
查看>>
JDK 内置的多线程协作工具类的使用场景
查看>>
Java 中哪些对象可以获取类对象
查看>>
linux 的 sleep 命令
查看>>
11.2.6 时间值的小数秒
查看>>
11.2.7 日期和时间类型之间的转换
查看>>
redis 内存溢出_从数据存储的角度告诉你Redis为什么这么快!
查看>>
实例:使用OKGO下载网络压缩包资源,然后解压缩放在本地使用
查看>>
解决mybatis嵌套查询使用PageHelper分页不准确
查看>>
Redis源码分析(七)--- zipmap压缩图
查看>>