动态SQL可以省略很多拼接SQL的步骤,使用类似于JSTL方式。

方式1 :

    <select id="queryBlogIf" resultType="blog" parameterType="map">select * from mybatis.blog where 1 = 1<if test="title!=null">and title like #{title}</if></select>
public void test02(){SqlSession sqlSession = MybatisUtils.getSqlSession();BlogMapper mapper = sqlSession.getMapper(BlogMapper.class);Map<String,String> map = new HashMap<>();map.put("title","%ring%");List<Blog> blogs = mapper.queryBlogIf(map);for (Blog blog : blogs) {System.out.println(blog);}sqlSession.close();}

但是这种方式不好的一点就是得手动添加‘%’通配符。

方式2:

    <select id="queryBlogIf" resultType="blog" parameterType="map">select * from mybatis.blog where 1 = 1<if test="title!=null">and title like '%${title}%'</if></select>

#{}在字符串中不能够被识别,而${}在字符串中是可以被识别出来的,但是${}是不可以防止sql注入的。

方式3:

利用SQL函数,concat

   <select id="queryBlogIf" resultType="blog" parameterType="map">select * from mybatis.blog where 1 = 1<if test="title!=null">and title like concat('%',#{title},'%')</if></select>

建议最好使用第三种方式,最为方便、安全。

mybatis动态sql模糊查询方法相关推荐

  1. 动态sql模糊查询和分页

    文章目录 动态sql 模糊查询 查询返回结果集的处理 分页 动态sql BookMapper xml bookservice 测试: MapperSql.test 运行: 模糊查询 BookMappe ...

  2. 动态SQL 模糊查询 联表查询

    1. 正文 1. set标签 和 foreach标签 trim标签 sql片段 2. mybatis映射文件处理特殊字符. 3. mybatis完成模糊查询. 4. 联表查询 2. 动态sql 2.1 ...

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

    一.like '%?%' SELECT * FROM t_usr WHERE name like '%${name}%' SQL解析为:SELECT * FROM t_usr WHERE name l ...

  4. 一个mybatis动态 SQL查询的完整小案例。包含多表联合查询。

    多表联合查询 一个根据机场查询航线的例子.有两张表,机场表包含机场信息:机场id.机场名字.机场城市. 航班包含航线信息:航班id.飞机编号.飞行时间.票价.起飞机场id.降落机场id. 需要查询的结 ...

  5. Mybatis:动态SQL分组查询

    目录 1.  实现思路 2. 代码实现 2.1  mapper 2.2 mapper 接口 2.3 Service层 AjaxResult对象 2.4 controller 2.5 测试 1.  实现 ...

  6. MyBatis动态SQL(认真看看, 以后写SQL就爽多了)

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源:cnblogs.com/homejim/p/9909657. ...

  7. 认真看看, 以后写 SQL 就爽多了:MyBatis 动态 SQL:

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 阿进的写字台 来源 | cnblogs.com ...

  8. MyBatis动态SQL,写SQL更爽

    点击上方 好好学java ,选择 星标 公众号重磅资讯,干货,第一时间送达 今日推荐:分享一套基于SpringBoot和Vue的企业级中后台开源项目,这个项目有点哇塞!个人原创100W +访问量博客: ...

  9. 认真看看, 以后写 SQL 就爽多了:MyBatis 动态 SQL

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达今日推荐:2020年7月程序员工资统计,平均14357元,又跌了,扎心个人原创100W+访问量博客:点击前往,查看更多 整理 ...

最新文章

  1. Django 07模型层—单表操作(增删改查)
  2. 跨境电商自建站后台系统原型rp_Shoptago---跨境电商平台又一个新选择
  3. 【PM模块】维护业务处理流程—内部维护(通知单)
  4. android 禁用dlsym_Android 7.0 dlopen 函数分析
  5. P7726-天体探测仪(Astral Detector)【构造】
  6. 神经网络优化(二) - 滑动平均
  7. oracle rac 实例查询,查找RAC环境中实例间资源分配情况
  8. jquery html页面跳转,HTML 链接
  9. GitHub上最火的74个Android开源项目(三)
  10. Arquillian和Jboss的版本问题
  11. PDF不能编辑怎么办?捷速PDF编辑器快速编辑!
  12. usaco Raucous Rockers
  13. 用户增长——AARRR模型
  14. 搭建百万级别邮件发送平台
  15. SuperCollider学习笔记(一)- 振荡器(Oscillators)
  16. MyBatis一发入魂(一)
  17. 易语言编程乱码解决方案
  18. 2022年测试工程师高频面试题及答案【python篇】
  19. c++ 经典服务器开源项目 Tinywebserver的使用与配置(百度智能云服务器安装ubuntu18.04可用公网ip访问)
  20. 远程桌面 域计算机,在AD中实现仅普通域用户可通过远程桌面控制自身计算机

热门文章

  1. c语言触屏滑动图片,微信小程序左右滑动切换图片酷炫效果(附效果)(示例代码)...
  2. 决策树与R语言(RPART)
  3. idea中的jar包在哪里导入?
  4. L1-020 帅到没朋友(Python3)
  5. 诊断分析-5-西楚大学轴承数据库
  6. 选定区域着色html,一种提取html页面选定区域内容的方法
  7. 【毕业设计项目】基于ESP32的家庭气象站系统 - stm32 物联网 嵌入式 单片机
  8. 让2010成为我的新纪元
  9. 视频的上传及购买播放
  10. python数据类型的转换