mybatis之if判断
今天使用mybatis开发公司中台项目踩的一个坑,分享并记录一下
踩坑前因:因项目中比较多状态字段,用了大量的Integer 0和1进行判断
在功能做完后只是粗略的点了下觉得没多大问题(来自程序员强大的自信),便提交了代码,很不巧的是刚好领导在做功能测试,发现了功能缺陷,主角来了:
在做牧户查询时所有的0判断均无效,而1有效。查阅资料得知在if语句做如下判断时intger类型0也视为false
<if test="status != null and status !=''">and status = #{status}</if>
解决方案有二:
1、<if test="status != null ">and status = #{status}</if> 直接判断!=null即可,只有字符串才需要判断!=""。
2、或者这样写 <if test="status != null and status !='' or status==0 ">and status = #{status}</if>
附上大神详细解析链接:https://www.jianshu.com/p/91ed365c0fdd
mybatis之if判断的更多相关文章
- mybatis的if判断integer
昨天在使用mybatis的if判断integer时遇见一个小问题: <if test="isChoose != null and isChoose != '' and isChoose ...
- mybatis做if 判断 传入值0 建议最好不要使用值0
mybatis做if 判断 注意:下面这种写法只适用于 id 类型为字符串. <if test="id != null and id != '' "> id = ...
- mybatis 中 if-test 判断大坑
[<if test="takeWay == '0'">]mybatis的if判断 单个的字符要写到双引号里面才行,改为<if test='takeWay == & ...
- mybatis if test 判断字符串的坑
今天调试一个非常简单的test判断字符串查询语句,怎么调试都是不好用,后来百度才发现,是我写的test标签写错了,我写成: <if test="record.current != nu ...
- 【备忘】mybatis的条件判断用<choose>
mybatis并没有if..else,在mybatis的sql mapper文件中,条件判断要用choose..when..otherwise. <choose> <when t ...
- mybatis if标签判断字符串相等
mybatis 映射文件中,if标签判断字符串相等,两种方式: 因为mybatis映射文件,是使用的ognl表达式,所以在判断字符串sex变量是否是字符串Y的时候, <if test=" ...
- 查询中mybatis的if判断里传入0
1.传入的是long 或者 Integer类型 ,<if test="id != null "> 但是id传值为0时(前提是id对应的类型为long 或者 Intege ...
- 注意了,Mybatis中条件判断时遇到的坑
1.mapper中比较字符串时需要注意的问题如下: mybatis 映射文件中,if标签判断字符串相等,两种方式:因为mybatis映射文件,是使用的ognl表达式,所以在判断字符串isComplet ...
- mybatis xml <if>判断字符串相等
mybatis 映射文件中,if标签判断字符串相等,两种方式: 因为mybatis映射文件,是使用的ognl表达式,所以在判断字符串sex变量是否是字符串Y的时候, <if test=" ...
- 【mybatis】IF判断的坑
http://cheng-xinwei.iteye.com/blog/2008200 最近在项目使用mybatis中碰到个问题 <if test="type=='y'"> ...
随机推荐
- 烦人的B数
B树:二叉树,每个结点只存储一个关键字,等于则命中,小于走左结点,大于走右结点: B-树:多路搜索树,每个结点存储M/2到M个关键字,非叶子结点存储指向关键字范围的子结点: 所有关键字在整颗树中出现, ...
- 从别人的代码中学习golang系列--02
这篇博客还是整理从https://github.com/LyricTian/gin-admin 这个项目中学习的golang相关知识 作者在项目中使用了https://github.com/googl ...
- Linux傻瓜式七步完美安装Python3.7
1 安装依赖包 yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-deve ...
- MACOS使用VScode进行C语言编程
[B站有同步视频教程] 安装VScode 从官网下载vscode安装https://code.visualstudio.com/ 安装code runner插件 配置code runner从终端输出 ...
- CSS3 transform详解,关于如何使用transform
transform是css3的新特性之一.有了它可以box module变的更真实,这篇文章将全面介绍关于transform的使用. transform的作用 transform可以让元素应用 2D ...
- centos-docker安装及基本使用
1.安装 1.安装之前 网络重启:service network restart 查看IP地址:ip addr 查看内核版本:uname -r 2.linux上安装docker 1.查看内核版本:un ...
- (五)ELK Logstash output
# 输出插件将数据发送到一个特定的目的地, 除了elasticsearch还有好多可输出的地方, 例如file, csv, mongodb, redis, syslog等 output { if [t ...
- appium移动端自动化测试环境搭建windows-appium-android
第一步:安装jdk 安装jdk(1.7版本以上) 安装完成设置jdk环境变量(百度查询) cmd命令下键入 java -version命令检查jdk是否安装成功且设置环境变量成功,如下图所示: 第二步 ...
- Vue防止按钮重复提交
参考了:https://www.cnblogs.com/adbg/p/11271237.html 方法:使用全局指令的方式. 一.新建指令 1.我们首先新建一个js文件,例如起名为plugins.js ...
- True Liars POJ - 1417
True Liars After having drifted about in a small boat for a couple of days, Akira Crusoe Maeda was f ...