MyBatis sql中test如何判断Boolean

目录
  • mybatis sql中test判断Boolean
    • 三种方式
  • if标签判断boolean类型的写法
    • 例子方法
    • 在入参flag不为空的情况下直接判断

mybatis sql中test判断Boolean

三种方式

<select id="queryAddress" resultType="com.caox.model.Address">
        select id, address, remark
        from address where
        1=1
        <if test="flag==true">
         and  address = #{address}
        </if>
    </select>
<update id="updateHaveNewComment">
        <choose>
            <when test="flag==true">
                UPDATE epc_subject_center s
                SET s.have_new_comment=1
                WHERE s.id=#{id}
            </when>
            <otherwise>
                UPDATE epc_subject_center s
                SET s.have_new_comment=0
                WHERE s.id=#{id}
            </otherwise>
        </choose>
    </update>
<update id="updateHaveNewComment">
        <choose>
            <when test="flag">
                UPDATE epc_subject_center s
                SET s.have_new_comment=1
                WHERE s.id=#{id}
            </when>
            <otherwise>
                UPDATE epc_subject_center s
                SET s.have_new_comment=0
                WHERE s.id=#{id}
            </otherwise>
        </choose>
    </update>

if标签判断boolean类型的写法

例子方法

在入参flag不为空的情况下直接判断

<if test="flag">
       AND order_status IN(1, 2, 3)
</if>
<if test="!flag">
       AND order_status IN(4, 5, 6)
</if>
<<choose>
     <when test="!flag">
             AND order_status  IN (4, 5, 6)
     </when>
     <otherwise>
             AND order_status  IN (1, 2, 3)
     </otherwise>
</choose>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 解决MyBatis返回结果类型为Boolean的问题

    问题描述: 在使用MyBatis时,有时需要检查某个记录是否存在数据库中,然后根据其返回的布尔值true or false,来进行逻辑判断.那怎么做呢? 解决方案: 如检测某个手机号是否被注册过: <select id="checkPhoneExist" parameterType="java.lang.String" resultType="java.lang.Boolean"> <![CDATA[ select count(

  • mybatis的if判断不要使用boolean值的说明

    mybatis的if判断里面最好不要使用boolean值: mybatis会默认把空值转为false.所以如果遇见前段传空值,这个字段在mybatis里面永远就是false了, 可以使用数字类型代替,但是不要使用0作为参数: 补充知识:[MyBatis]<if test=""></if>标签的条件判断(Boolean类型参数) 在MyBatis 中,动态 SQL 元素和 JSTL 或基于类似 XML 的文本处理器相似. 在 MyBatis 3 之前的版本中,有很

  • 浅谈mybatis中SQL语句给boolean类型赋值问题

    我就废话不多说了,大家还是直接看代码吧~ <select id="getBiTree" parameterType="String" resultMap="MenuVoListMap"> SELECT m.menu_id , m.parent_id , m.`name` , 1 opens FROM menu m WHERE m.is_valid = 1 AND (m.type = 0 or m.type = 1) and m.men

  • mybatis中<if>标签bool值类型为false判断方法

    昨天实现一个功能,根据文章的id或者别名查找文章. 起初采用mybatis的Example进行查询,对参数artName进行判断,如果是纯数字就byId查询,否则就by别名.由于查询文章的同时,需要关联查询文章分类标签,所以选择采用select语句映射的方式查询,但又不想写两个查询方法,就使用了mybatis中动态sql. /** * 查询文章 * @param artName id 或 别名 * @param byId 如果是 true 则按照id查询 * 否则 按照别名查询 * @retur

  • MyBatis sql中test如何判断Boolean

    目录 mybatis sql中test判断Boolean 三种方式 if标签判断boolean类型的写法 例子方法 在入参flag不为空的情况下直接判断 mybatis sql中test判断Boolean 三种方式 <select id="queryAddress" resultType="com.caox.model.Address">         select id, address, remark         from address wh

  • 详解Java的MyBatis框架中动态SQL的基本用法

    有些时候,sql语句where条件中,需要一些安全判断,例如按某一条件查询时如果传入的参数是空,此时查询出的结果很可能是空的,也许我们需要参数为空时,是查出全部的信息.使用Oracle的序列.mysql的函数生成Id.这时我们可以使用动态sql.下文均采用mysql语法和函数(例如字符串链接函数CONCAT). selectKey 标签 在insert语句中,在Oracle经常使用序列.在MySQL中使用函数来自动生成插入表的主键,而且需要方法能返回这个生成主键.使用myBatis的select

  • Java的MyBatis框架中对数据库进行动态SQL查询的教程

    其实MyBatis具有的一个强大的特性之一通常是它的动态 SQL 能力. 如果你有使用 JDBC 或其他 相似框架的经验,你就明白要动态的串联 SQL 字符串在一起是十分纠结的,确保不能忘了空格或在列表的最后省略逗号.Mybatis中的动态 SQL 可以彻底处理这种痛苦.对于动态SQL,最通俗简单的方法就是我们自己在硬编码的时候赋予各种动态行为的判断,而在Mybatis中,用一种强大的动态 SQL 语 言来改进这种情形,这种语言可以被用在任意映射的 SQL 语句中.动态 SQL 元素和使用 JS

  • 关于mybatis if else if 条件判断SQL片段表达式取值和拼接问题

    前言 最近在开发项目的时候涉及到复杂的动态条件查询,但是mybaits本身不支持if elseif类似的判断但是我们可以间接通过 chose when otherwise 去实现其中choose为一个整体 when是if otherwise是else 快速使用 以前我们进行条件判断时候使用if标签进行判断,条件并列存在 <if test="seat_no != null and seat_no != '' "> AND seat_no = #{seat_no} </i

  • 关于Mybatis动态sql中test的坑点总结

    目录 总结Mybatis动态sql中test的坑 判断相等的注意点 判断字符是否相等 动态sql标签的小陷阱 下面先举个正常的例子 总结Mybatis动态sql中test的坑 在mybatis中要实现动态sql,重要方式就是使用test,通过其中表达式返回的true.false来达到动态sql的拼接.随着业务的复杂,test中的判断将会越来越复杂,所以熟悉test中细节处理对动态sql来说尤为重要. 判断相等的注意点 == 少打一个= 现在我们有一个Integer类型的参数typeId,需要当t

  • mybatis plus中如何编写sql语句

    目录 sql语句是写在对应的xml文件中 mybatis plus sql语句集合 获取数据库中某个varchar字段的最大值 日期格式转换 字符串拼接 查询年份的当前年份的后面一年 查询获取当前年份 left,right函数返回args最左边.右边的length个字符串 当前日期的前三个月日期 截取某一个字段中以某个字符开始截取 sql语句是写在对应的xml文件中 首先要解决maven默认不加载xml文件的问题 1.首先要写入相关配置文件 在pom 导入下面内容  <build>      

  • SQL中字符串中包含字符的判断方法

    在sql中我判断包含字符串我们可使用很多方法,如like,replace,charindex函数都可实现我们要的功能,下面我来给各位介绍判断字符串包含字符串sql语句. 通过2个函数CHARINDEX和PATINDEX以及通配符的灵活使用 函数:CHARINDEX和PATINDEX CHARINDEX:查某字符(串)是否包含在其他字符串中,返回字符串中指定表达式的起始位置. PATINDEX:查某字符(串)是否包含在其他字符串中,返回指定表达式中某模式第一次出现的起始位置:如果在全部有效的文本和

  • MyBatis动态SQL中的trim标签的使用方法

    trim标记是一个格式化的标记,可以完成set或者是where标记的功能,如下代码: 1. select * from user <trim prefix="WHERE" prefixoverride="AND |OR"> <if test="name != null and name.length()>0"> AND name=#{name}</if> <if test="gender

  • Java通过在主循环中判断Boolean来停止线程的方法示例

    本文实例讲述了Java通过在主循环中判断Boolean来停止线程的方法.分享给大家供大家参考,具体如下: package Threads; /** * Created by Frank */ public class StopBoolean extends Thread { // 确保变化对其它线程可见(主要是主线程要可见) protected volatile boolean done = false; public void run() { while (!done) { System.ou

  • mybatis 映射文件中if标签判断字符串相等的两种方式

    mybatis 映射文件中,if标签判断字符串相等,两种方式: 因为mybatis映射文件,是使用的ognl表达式,所以在判断字符串sex变量是否是字符串Y的时候, <if test="sex=='Y'.toString()"> <if test = 'sex== "Y"'> 注意: 不能使用 <if test="sex=='Y'"> and 1=1 </if> 因为mybatis会把'Y'解析为字

随机推荐