功能:根据性别和名字查询用户

查询sql语句:

SELECT id, username, birthday, sex, address FROM `user` WHERE sex = 1 AND username LIKE '%张%'
mybatis动态sql:

Mapper.xml文件配置sql如下:

<!-- 根据条件查询用户 -->
<select id="queryUserByWhere" parameterType="user" resultType="user">
    SELECT id, username, birthday, sex, address FROM `user`
    WHERE sex = #{sex} AND username LIKE
    '%${username}%'
</select>
改进1:

<!-- 根据条件查询用户 -->
<select id="queryUserByWhere" parameterType="user" resultType="user">
    SELECT id, username, birthday, sex, address FROM `user`
    WHERE 1=1
    <if test="sex != null and sex != ''">
        AND sex = #{sex}
    </if>
    <if test="username != null and username != ''">
        AND username LIKE
        '%${username}%'
    </if>
</select>
改进2:

<!-- 根据条件查询用户 -->
<select id="queryUserByWhere" parameterType="user" resultType="user">
    SELECT id, username, birthday, sex, address FROM `user`
<!-- where标签可以自动添加where,同时处理sql语句中第一个and关键字 -->
    <where>
        <if test="sex != null">
            AND sex = #{sex}
        </if>
        <if test="username != null and username != ''">
            AND username LIKE
            '%${username}%'
        </if>
    </where>
</select>
 
————————————————
版权声明:本文为CSDN博主「夏沐_lk」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/guanmao4322/article/details/99696541

Mybatis 动态sql语句(if标签和where标签)相关推荐

  1. MyBatis——动态SQL语句——if标签和where标签复合使用

    功能需求 根据性别和名字查询用户 官方文档 MyBatis--动态 SQL SQL语句 SELECT id, username, birthday, sex, address FROM `user` ...

  2. Mybatis—动态SQL语句与逆向工程

    Mybatis动态SQL语句与逆向工程 MyBatis动态SQL语句与逆向工程 1.动态SQL语句 1.1.动态SQL是什么 1.2.动态SQL有什么用 1.3.基于XML的实现 1.3.2.接口文件 ...

  3. Mybatis动态SQL语句大全

    动态 SQL 语句大全 读完这篇文章里你能收获到 Mybatis动态SQL语句大全 Mybatis中如何定义变量 Mybatis中如何提取公共的SQL片段 1.if语句 需求:根据作者名字和博客名字来 ...

  4. Mybatis 动态Sql语句《常用》

    MyBatis 的强大特性之一便是它的动态 SQL.如果你有使用 JDBC 或其他类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句有多么痛苦.拼接的时候要确保不能忘了必要的空格,还要注意省掉 ...

  5. MyBatis动态sql语句使用

    一.MyBatis动态语句分为4种元素: 元素 作用 描述 if 条件判断 单条件判断 choose(when.otherwise) 条件选择,相当Java when 多条件分支判断 where.se ...

  6. mybatis动态SQL语句

    三.动态SQL语句 有些时候,sql语句where条件中,需要一些安全判断,例如按性别检索,如果传入的参数是空的,此时查询出的结果很可能是空的,也许我们需要参数为空时,是查出全部的信息.这是我们可以使 ...

  7. 【转】mybatis实战教程(mybatis in action)之八:mybatis 动态sql语句

    转自:除非申明,文章均为一号门原创,转载请注明本文地址,谢谢! 转载地址:http://blog.csdn.net/kutejava/article/details/9164353#t5 1. if ...

  8. Mybatis动态sql语句的生成

    在XMLLanguageDriver的createSQLSource()方法中,可以将已经经过解析的xml节点传入,并且传入相应的参数类型,开始动态sql语句的生成. @Override public ...

  9. MyBatis学习总结(11)——MyBatis动态Sql语句

    MyBatis中对数据库的操作,有时要带一些条件,因此动态SQL语句非常有必要,下面就主要来讲讲几个常用的动态SQL语句的语法 MyBatis中用于实现动态SQL的元素主要有: if choose(w ...

最新文章

  1. 未授予用户在此计算机上的请求登陆类型处理办法
  2. 阿里云查看mysql版本_查看mysql版本
  3. PHP mkdir()无写权限的问题解决方法
  4. Opencv 配置VS2012
  5. ruijie交换机lacp动态_Server2016和华为s5720交换机链路聚合增加带宽
  6. oracle数据本机自动备份
  7. [Bugku][Web][CTF] 30-33 write up
  8. 清除Docker的占用空间问题
  9. 301.inc.php,DeDeCMS默认首页及WWW域的301跳转
  10. html5视频抓取,js和HTML5基于过滤器从摄像头中捕获视频的方法
  11. 【图像配准】基于灰度的模板匹配算法(一):MAD、SAD、SSD、MSD、NCC、SSDA、SATD算法
  12. 7-2 整除分块 (15 分)
  13. 如何使用Git上传项目代码到github
  14. TMS320F28335之外部中断和自定义中断
  15. win7配置powershell环境变量
  16. STC8H开发(二): 在Linux VSCode中配置和使用FwLib_STC8封装库(图文详解)
  17. day69_淘淘商城项目_02_dubbo介绍 + dubbo框架整合 + zookeeper + 商品列表查询实现 + 分页 + 逆向工程_匠心笔记
  18. 玩转PHP(一)---php中处理汉字字符串长度:strlen和mb_strlen
  19. 视频播放性能优化-视频MOOV前置
  20. 智能优化算法:闪电搜索算法-附代码

热门文章

  1. QT的QMutableMapIterator类的使用
  2. C语言函数——常用数学函数
  3. 1.11.Flink DataSetAPI、DataSet API之Data Sources、DataSet API之Transformations、DataSet Sink部分详解
  4. 史上最简单的SpringCloud教程 | 第十二篇: 断路器监控(Hystrix Dashboard)
  5. 史上最简单的SpringCloud教程 | 第十篇: 高可用的服务注册中心
  6. Strom程序的并发机制,配置并行度(代码实现)、动态改变并行度,local or shuffle分组,分组的概念以及分组类型
  7. 1虚拟地址,虚拟内存映射,系统调用本质,进程运行状态
  8. Java 判断操作系统类型(适用于各种操作系统)
  9. WebServices应用集成框架ESB(Enterprise Service Bus 企业服务总线)
  10. Workshop | 超高效的设计方法你GET了吗?Design Sprint设计冲刺工作坊