【MyBatis】 动态SQL——模糊查询 LIKE

【MyBatis】 动态SQL——模糊查询 LIKE一、like’%?%’SELECT*FROMt_usrWHEREnamelike’%${name}%’SQL解析为:SELECT*FROMt_usrWHEREnamelike’%海%’传参必须用${}不能用#{},这样写的弊端是不安全,不能防sql注入有关LIKE使用,请参见:https://blog.csdn.net/wrs120/articl…

大家好,又见面了,我是你们的朋友全栈君。

一、like ‘%?%’

SELECT  * 
FROM t_usr 
WHERE  name like '%${name}%'

SQL解析为:SELECT * FROM t_usr WHERE name like ‘%海%’
传参必须用${}不能用#{},这样写的弊端是不安全,不能防sql注入
有关LIKE使用,请参见:https://blog.csdn.net/wrs120/article/details/7930582

二、CONCAT()拼接%

SELECT  * 
 FROM t_usr  
 WHERE name like CONCAT('%',CONCAT(#{name},'%'))

SQL解析为:SELECT * FROM t_usr WHERE name like CONCAT(‘%’,CONCAT(?,’%’))
拼接时%必须加引号
有关CONCAT()使用,请参见:https://blog.csdn.net/wrs120/article/details/81148101

三、bind

bind 元素可以从 OGNL 表达式中创建一个变量并将其绑定到上下文。OGNL(Object Graph Navigation Language的缩写)是一种强大的表达式语言,更多用法,见:https://blog.csdn.net/isea533/article/details/50061705/

  SELECT  *  
  FROM t_usr 
  WHERE
      <if test="name !=null || name !=''">
          <bind name="usrName" value="'%' + name + '%'"/>
          name like #{usrName}
      </if>

SQL解析为:SELECT * FROM t_usr WHERE name like ?

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/140022.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 3d游戏建模全解[通俗易懂]

    3d游戏建模全解[通俗易懂]目前市面上随着3D游戏的兴起和VR的盛行,越来越多人对网络游戏越来越热衷,3D游戏建模设计师的需求也越来越广泛,市场缺口大,人才需求供不应求。但在大多数人的印象中,这个行业似乎很难入门,没有美术基础,好像丝毫没有机会进入这个行业。真的是这样吗?3D建模3D建模通俗来讲就是通过三维制作软件构建出具有三维数据的模型。在3DMAX中,建模各项最首要的就是感觉。需要感觉每个部件的大小。感觉各个部位所需要使用的材质、颜色等。需要把控整体的颜色效果。而这些可以说都和美术的基础挂钩的,尤其是颜色。颜色

    2022年5月11日
    42
  • java中两个list对象取交集、差集

    java中两个list对象取交集、差集在一般操作中,对于list集合取交集、差集、并集,比较简单,网上有很多例子,如:今天我们来说一下对于两个list集合该如何取交集与并集:如下两个集合:groupEntityList、saveEntities,groupEntityList是组织集合,saveEntities是组织用户集合,即saveEntities包含groupEntityList中的数据。交集:差集:saveEntities-groupEntityList表达式中谁在前,谁就是减数。希望对大家有所帮助,我是空谷有来人,感谢

    2022年9月27日
    0
  • 手把手教你python画图(精简实例,一看就懂)

    手把手教你python画图(精简实例,一看就懂)1、不叨叨,直接上代码importmatplotlib.pyplotaspltx=[1,2,3,4,5]y=[0,3,2,7,9]plt.figure()plt.plot(x,y,’r-‘,lw=5)plt.show()2、结果图

    2022年6月2日
    42
  • 联通混改 流量大数据及增值业务或将成重点「建议收藏」

    联通混改 流量大数据及增值业务或将成重点

    2022年3月5日
    119
  • 正则表达式Python_python正则表达式匹配字符串

    正则表达式Python_python正则表达式匹配字符串转载:https://www.jianshu.com/p/5295c5988b7f一、正则表达式语法(一)字符与字符类1、特殊字符:\.^$?+*{}[]()|以上特殊字符要想使用字面值,必须使用\进行转义。2、字符类包含在[]中的一个或者多个字符被称为字符类,字符类在匹配时如果没有指定量词则只会匹配其中的一个。字符类内可以指定范围,比如[a-zA-Z0-9]表示a到z,A…

    2022年10月3日
    0
  • Ubuntu 优化、美化(主题、终端)[通俗易懂]

    Ubuntu 优化、美化(主题、终端)[通俗易懂]Ubuntu优化、美化(主题、终端)零效果图一优化Ubuntu\1系统更新\2安装GDebi(第三方软件安装)\3安装搜狗输入法\4软件卸载,安装4.1卸载libreOffice安装WPS4.2卸载掉亚马逊链接4.3卸载firebox浏览器安装Chrome/Chromium浏览器\5修改更新源\6vim配置\6菜单栏位置\7二美化Ubuntu\1主题1.1安装unity-tweak-tool:1.2Flatabulous主题\

    2022年7月22日
    15

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号