美文网首页
九 . 动态sql-if

九 . 动态sql-if

作者: 任未然 | 来源:发表于2019-09-29 20:08 被阅读0次

一、说明

if元素 是简单的条件判断逻辑,满足指定条件时追加 if元素内的SQL,类似于Java 中的 if语句

if 标签是我们最常使用的。 在查询、删除、更新的时候很可能会使用到。 必须结合 test 属性联合使用

二、语法结构

<select ... >
SQL语句
<if test="条件表达式">
SQL语句2
</if>
</select>

三、栗子

接口

 /**
   * 根据用户名或者手机号查询
   */
public User  findUserByIf(@Param("name") String name, @Param("phone") String phone);

UserMapper.xml

<select id="findUserByIf" resultType="User">
  SELECT * FROM user WHERE 1=1
  <if test="name!=null and name!=''">
    AND name LIKE CONCAT(CONCAT('%', #{user.name}),'%')
  </if>
  <if test="phone !=null and phone !=''">
    AND phone=#{phone}
  </if>
</select>

问题

如果其中有一个条件不传,这个时候sql语句就变成下面这个样子 直接报错

SELECT * 
FROM  user         
WHERE   1=1  AND name LIKE '%admin%' AND phone=

相关文章

  • 九 . 动态sql-if

    一、说明 if元素 是简单的条件判断逻辑,满足指定条件时追加 if元素内的SQL,类似于Java 中的 if语句...

  • 16、mybatis-动态sql-if

    一、说明 if元素 是简单的条件判断逻辑,满足指定条件时追加 if元素内的SQL,类似于Java 中的 if语句...

  • Spring之代理模式

    九、代理模式 目录:静态代理、动态代理AOP的底层机制就是动态代理。代理模式分为静态代理和动态代理。接触aop之前...

  • 九、动态存储管理

    九、动态存储管理 1. 边界标识法 边界标识法是在动态存储块的上下边界各设一个双向链表结点,分别称其为头部域和底部...

  • 动态九:目标和

    题目地址: https://leetcode-cn.com/problems/target-sum/[https...

  • 《算法图解》note 9 动态规划

    这是《算法图解》的第九篇读书笔记,主要内容是动态规划的简介。 1.动态规划定义 动态规划指的是在约束条件下,将问题...

  • 安博通今起招股 ;博瑞医药将上会;10家科创板公司51.85亿元

    监管动态 2019年8月19日上交所科创板项目动态 2019年8月19日,上交所官网更新6家科创板项目动态,其中九...

  • 九江楼市动态

    突然某些熟人来一句,最近房价降了不少?由于工作的原因频繁的接受身边的朋友咨询九江房价动态……我通常会这样回...

  • 暑假学习打卡4

    JSP:在原有html的基础+java脚本+jsp标签,动态资源 jsp九个内置对象 java脚本:<%........

  • 九、动态代理的原理分析

    动态代理的案例 定义一个接口: 定义一个接口的实现类: 定义一个动态代理的实现类: 目标对象一般通过构造方法注入 ...

网友评论

      本文标题:九 . 动态sql-if

      本文链接:https://www.haomeiwen.com/subject/abmxyctx.html