MyBatis Plus Mapper.xml映射文件常用标签<if>、<foreach>等

一、判断 Integer、Long 等常数类参数

        
            and tstc.Integer = #{Integer}
        

注意:判断常数类参数,只能判断 != null,不能判断 != '' 否则判断不会生效

二、判断 String 字符串类参数

        
            and t.field = #{str}
        

注意:判断字符串类参数可以判断 != ''

三、判断参数值与指定的值,是否相等或不相等

        //判断常数类型
        
            and t.Long = #{Long}
        
        
            and t.Long = #{Long}
        


        //判断字符串类型
        
            and t.str = #{str}
        
        
            and t.str = #{str}
        

注意:
1、判断 Integer、Long 等常数类型等于某个值,值不需要加引号
2、判断 String 字符串类型等于某个值,值需要加单引号,并且用 .toString() 转成字符串类型条件才会生效

四、判断 List、Set 集合类参数

        
            and t.id in
            
                #{item}
            
        

注意:
1、判断集合类参数,判断 != null 的同时一定要判断 lists.size() > 0
2、否则 lists 集合不为 null 但集合中没有元素,也会进入循环是有问题的

五、大于、小于等特殊字符转义写法

        
            and date_format(t.date, '%Y-%m-%d') <= date_format(#{date}, '%Y-%m-%d')
        

注意:
1、入参属性类型为date类型,只需要判断 != null 即可
2、>= 为大于等于、<= 为小于等于,还有其他转义写法自行查阅

六、#{}、${} 获取参数的区别及使用场景

        //一般常规入参使用 #{} 占位符即可
        
            and t.str = #{str}
        


        //特殊情况可以使用 ${} 拼接
        
            order by t.sort_num,
            
                t.${sortStr}
            
            ${sortType}
        

注意:
1、#{} 是占位符,${} 是拼接参数
2、常规获取参数使用 #{} 占位符即可,特殊情况也可以使用 ${} 拼接(例如根据多字段排序,需要使用 ${} 直接拼接,使用 #{} 不生效会报错)
3、当使用 #{} 占位符不生效或报错的情况下,直接使用 ${} 拼接即可

你可能感兴趣的:(MyBatis,Plus,MySQL,Oracle,PostgreSQL,mybatis,mysql)