Mybatis的<if>和<choose>的区别 以及“=”判断

USRP X410 MPM版本与主机UHD版本不匹配问题记录与解决 至此大功告成!之前安装软件的坑算是填起来了,再次记录一下,希望能帮到有同样问题的小伙伴~ 阅读详情

       在项目中xml文件经常会遇到在判断等于某个值时加什么条件不等于某个值的时候加什么条件,比如下面这个例子:

      <if  test=" name != null">
            AND T.NAME = #{NAME,jdbcType=VARCHAR}
     </if>
    <if  test=" name  == null">
           ORDER BY NAME,ID
    </if>

   

      正确很好的写法需要引入<choose>标签

 <choose>
       <when test=" name != null">
          AND T.NAME = #{NAME,jdbcType=VARCHAR}
      </when>
     <otherwise>
        ORDER BY T.PRODUCT_TYPE_CODE, T.SORT DESC, T.CREATE_TIME
     </otherwise>
</choose>

 第一种错误写法导致的结果就是不会去做任何判断即使name不为空。为什么只能用<choose>标签,源码还没有研究,或者我这个例子本身就有问题现在记录下来,在后续的更新中我会再次总结一下这个问题。

2.

 <!--错误的写法-->        

<if test="newsImage != null and newsImage == 'y'">  
    <![CDATA[ and len(newsImage) > 0 ]]>  
</if>  
<!-- 正确的,稳定,推荐使用 -->  
<if test="newsImage != null and newsImage == 'y'.toString()">  
    <![CDATA[ and len(newsImage) > 0 ]]>  
</if>  

     判断 newsImage == 'y' 时,有人认为成功,但实际上是不成功的,需要改为  newsImage == 'y'.toString()方可成功,原因具体没

有细入研究,根据实际使用推测应该是 “等于” 在java中是个比较复杂问题,涉及的“等于”有可能是变量地址相等,或者是变量值内

容相等,在XML文件中简单的 == 在经过MyBatis处理后无法判断是哪种类型的“相等”,所以加.toString()做强制转换操作,MyBatis

就知道是值内容的比较,当然就成功了;注意这个常量不限于数字,对于字母,如 'y' 同样需要加上 .toString()方可成功。

利用pytorch长短期记忆网络LSTM实现股票预测分析 长短时记忆网络(Long Short Term Memory Network, LSTM),是一种改进之后的循环神经网络,可以解决RNN无法处理长距离的依赖的问题,目前比较流行。LSTM主要就是加入了三个门控:第一个开关遗忘门:负责控制继续保存长期状态c;第二个开关输入门:负责控制把即时状态输入到长期状态c;第三个开关输出门:负责控制是否把长期状态c作为当前的LSTM的输出。 阅读详情

相关推荐

linux下autocad完美替代品bricscad的安装运行

前言 在Linux平台下,能完美兼容.dwg文件的软件并不多。 虽然国产的中望和浩辰为适配uos操作系统,近期都推出了linux版本,但目前好像还没有对应的破姐流出。(如果有的话请私信我或留下评论) 然而有了这一款源自比利时的软件——bricscad,linux下查看和编辑.dwg文件再也不是噩梦了! 安装pj 资源链接:https://pan.baidu.com/s/1dC7zarlqwuO5fa4CBL_KGQ 提取码:24j6 1.下载对应的压缩包,解压并安装其中对应的deb或rpm软件包。 2.在C

weixin_35259117的博客 4483

mybatis的<choose>标签使用

记录:418 场景:使用MyBatis的标签的标签的test属性,对入参属性的值做非null(!=null)、非空(!='')判断,或者与常量做相等(==)或者不等判断(!=)。

zhangbeizhen18的博客 1万+

Ubuntu 22.04 上 Mezzanine CMS 完整安装指南

CMS(内容管理系统)是构建博客、企业官网等静态与动态内容混合站点的核心技术栈;Django 作为 Python 生态中最成熟的 Web 框架,凭借其 ORM、Admin 和安全机制,成为 CMS 开发的首选基础。Mezzanine 是基于 Django 的轻量级 CMS,以开箱即用、零配置多语言和内置 SEO 工具为特色,特别适合中小项目快速落地。在 Ubuntu 这类强调稳定性的服务器操作系统上部署时,关键挑战并非代码逻辑,而是系统层依赖协同——如 Python 版本锁定、SQLite FTS5 支持、

weixin_33508411的博客 304

Mybatis - <choose> 标签的用法

Mybatis <choose> 标签的用法及注意事项

业精于勤荒于嬉 1万+

决策树(分类树、回归树)

决策树 前言:第一篇博客,最近看完决策树,想着归纳一下,也方便自己以后回顾。写的会比较全面一些,可能会有很多不太正确的地方,欢迎大家交流指正 : ) 决策树模型: 决策树模型是运用于分类以及回归的一种树结构。决策树由节点和有向边组成,一般一棵决策树包含一个根节点、若干内部节点和若干叶节点。决策树的决策过程需要从决策树的根节点开始,待测数据与决策树中的特征节点进行比较,并按照比较结果选...

你午睡了吗 9万+

在VS2019里把JSBSim飞行模型集成到你的C++项目里(附完整配置流程和常见错误解决)

本文详细介绍了如何在Visual Studio 2019中将JSBSim飞行模型集成到C++项目中,包括环境准备、源码编译、项目配置和常见错误解决方案。通过实战技巧和优化建议,帮助开发者高效实现高精度飞行仿真功能,提升开发效率。

weixin_42620202的博客 413

掌握 MyBatis<choose>标签:优化动态查询条件的利器

MyBatis 是一个基于 Java 的持久层框架,它允许开发人员使用简单的 XML 或注解来配置 SQL 映射,从而将 Java 对象与数据库记录进行映射。通过 MyBatis,我们能够避免编写繁琐的 JDBC 代码,同时还能够更好地控制 SQL 的执行过程。标签是 MyBatis 中用于条件选择的一个强大工具,它允许我们根据不同的条件选择性地包含 SQL 片段,从而更灵活地构建查询语句。通过合理地使用

修己xj的博客 2475

武汉理工大学数据结构综合实验——连连看游戏综合实践

文章目录实验目的主要仪器设备及耗材一、实验要求二、分析与设计(非线性结构)1.数据结构的设计2.核心算法设计一条直线消子两条直线消子三条直线消子初始化游戏地图搜寻路径提示和重排3.测试用例设计4.测试效果总结 实验目的 (1)线性结构实验目的 调研连连看游戏,了解连连看游戏的功能和规则等 掌握集成开发工具VS2019的使用和C++的基础编程 了解MFC框架 了解线性结构,掌握数组的遍历、消子和胜负判断等算法 了解企业软件开发过程,应用迭代开发思路进行项目开发,养成良好的编程习惯和培养软件工程化思维 .

mo_zhe的博客 7612

Mybatis 《choose》用法

MyBatis 是一种流行的持久层框架,它简化了在Java应用程序和数据库之间的交互。choose、when、otherwise 这一组标签是 MyBatis 中用于实现分支逻辑的一种方式,类似于 Java 中的 if-else if-else 语句。通过使用这些标签,可以根据不同的条件来动态地选择要执行的 SQL 语句部分。

wj1qaz的博客 4722

Box2D-Lite源码阅读笔记(2)

0.初始化函数 static void InitDemo(int index) { world.Clear(); numBodies = 0; numJoints = 0; bomb = NULL; demoIndex = index; demos[index](bodies, joints); } 在这个初始化函数中,一般会默认执行index=0的函数,这个函数就是一个示例,因为示例比较简单,所以也便于研究,示例效果如下。 就是一个方块。 进入第一个示例函数。(忽略我加的注释)

ARTELE的博客 976

STM32F103/F407/H743不同GPIO速度配置(HAL库)对应的最高速度

详细介绍了STM32F103/F407/H743不同GPIO速度配置(HAL库)对应的最高速度。

kevin1499的博客 5588

MyBatis if判断条件为等于的问题

方法一: 当MyBatis 判断条件为等于的时候,常量需要加 .toString()来转换,这种方法是稳定的,推荐使用,比如: <!--正确的,稳定,推荐使用--> <iftest="newsImage!=nullandnewsImage=='1'.toString()"> <![CDATA[andlen(newsIma...

任意门的博客 2万+

【YOLO11改进 - 检测头】Detect_LSCD检测头:量化的检测头,进一步提升模型的检测效率和精度

【YOLO11改进 - 检测头】Detect_LSCD检测头:量化的检测头,进一步提升模型的检测效率和精度

专注于图像领域,主要研究内容包括计算机视觉和深度学习,特别是在图像分类、目标检测和图像生成等方面有深入的研究和实践经验。 4094

mybatis配置mapper是判断使用if还是choose when

mybatis使用mapper配置条件语句sql时根据条件判断使用不同的参数和处理方式,常常用到 if 和 choose when,容易弄混淆,为什么有了if还要使用choose when呢,我觉得如果if还有else标签的话就不需要choose when了。if和choose when的用法如下: 一、if(通过“title”和“book”两个参数进行可选搜索): &lt;select i...

成の博客 4820

spcomm 3.0.rar

delphi spcomm3.0控件代码

千M兆网线水晶头故障检测软件工具

千M兆网线水晶头故障检测软件工具

mybatis choose when 和 if的区别

mybatis使用mapper配置条件语句sql时根据条件判断使用不同的参数和处理方式,常常用到 if 和 choose when,容易弄混淆,为什么有了if还要使用choose when呢,我觉得如果if还有else标签的话就不需要choose when了。if和choose when的用法如下: 一、if(通过“title”和“book”两个参数进行可选搜索): &l...

qq_35207917的博客 6311

格科微GS8604 GC0308 GC0339GC2035GC6123等摄像头传感器芯片(30个)数据手册设计指南等资料.zip

格科微GS8604 GC0308 GC0339GC2035GC6123等摄像头传感器芯片(30个)数据手册设计指南等资料,型号如下:GC0112GC0308GC0309GC030AGC0310GC0311GC0312GC0313GC0328GC0329GC0339GC0406GC0409GC2015GC2035GC2145GC2155GC2235GC2355GC2755GC4003GC5004GC5005GC5024GC6103GC6113GC6123GC8003GS5604GS8604GT2005

MyBatis Choose 核心解析

在开发过程中,我们经常会遇到根据不同条件执行不同SQL语句的需求。例如,在查询数据库时,可能需要根据用户的角色来决定查询哪些字段。在这种情况下,传统的if-else语句在XML映射文件中会显得非常冗长且难以维护。为了解决这一问题,MyBatis引入了Choose元素,它允许我们根据条件动态选择执行不同的SQL片段。下面,我们将深入探讨MyBatis核心知识点之Choose的概述。想象一下,你正在开发一个在线购物平台的后端系统。在处理订单查询时,你需要根据用户的权限来决定查询哪些订单信息。

MoneyHacksPro的博客 1211

基于stm32f103zet6的智能小车的制作.zip

基于stm32f103zet6的智能小车的制作

Mybatis的choose标签

1、choose标签介绍 choose标签作用条件判断来拼接指定的条件,它和if不太相同,choose似类于java中的switch语句用法,直要有条件成立,其它判断将得不到执行,如果所有条件都不成立则执行otherwise标签中的内容。 格式: <choose>   <when test=条件1>     执行的代码;   </when> <when test=条件2>     执行的代码;   </when>   ......   <o

qq_43223307的博客 2万+

MyBatis动态SQL:Choose标签深度解析

在当今的软件开发领域,MyBatis 作为一款优秀的持久层框架,以其简洁的配置和强大的动态SQL功能,深受广大开发者的喜爱。然而,在实际的项目开发中,我们常常会遇到一些复杂的业务逻辑,需要根据不同的条件执行不同的SQL语句。这时,MyBatis 提供的choose核心知识点便显得尤为重要。想象一下,在一个电商系统中,我们可能需要根据用户的购买历史和偏好来推荐商品。如果用户购买过某种类型的商品,我们可能推荐同类型的商品;如果用户购买过多种类型的商品,我们可能推荐其他类型的商品。

我是Java程序员廖志伟,感谢朋友们的支持! 1397

MyBatis动态语句if与choose的区别

if(通过“title”和“author”两个参数进行可选搜索): <select id="findActiveBlogLike" resultType="Blog"> SELECT * FROM BLOG WHERE state = ‘ACTIVE’ <if test="title != null"> AND title...

dianzhouyu4467的博客 641

3、动态标签详解: if、 where、trim、set、 foreach、choose、bind

3、动态标签详解: if、 where、trim、set、 foreach、choose、bind

shiyu_951的博客 3792

MyBatis 的动态 SQL ——(if,choose,trim , foreach)

MyBatis 的强大特性之一便是它的动态 SQL。如果你有使用 JDBC 或其它类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句的痛苦。例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL 这一特性可以彻底摆脱这种痛苦。  虽然在以前使用动态 SQL 并非一件易事,但正是 MyBatis 提供了可以被用在任意 SQL 映射语句中的强大的动态 S...

蔡小波的博客 871

mybatis的<choose>和<otherwise>使用

首先我们要明确choose和if的区别,先看代码 <if test="null != null and '' != id"> and id = #{id} </if> <choose> <when test = "null != id and '' != id"> id = #{id} </when> <when test = "id == 1"> id = '1' </when> <othe.

weixin_47733858的博客 2577

MyBatis Choose 标签:动态SQL核心解析

在当今的软件开发领域,MyBatis 作为一款优秀的持久层框架,以其简洁的配置和强大的动态SQL功能,深受广大开发者的喜爱。然而,在实际的项目开发中,我们常常会遇到一些复杂的业务逻辑,需要根据不同的条件动态地执行不同的SQL语句。这时,MyBatis 提供的 Choose 核心知识点就变得尤为重要。想象一下,在一个电商系统中,我们可能需要根据用户的购买历史来推荐商品。如果用户购买过某种类型的商品,我们可能推荐同类型的商品;如果用户购买过多种类型的商品,我们可能推荐其他类型的商品。

我是Java程序员廖志伟,感谢朋友们的支持!不定期贡献一篇高品质、过万文字、图文并茂且附有视频解说、满载代码示例注释的良心之作,坚决杜绝粗制乱造。 407
上一篇: linux发布war包应用的常用命令
下一篇: js和java写法中this标签的误区
作手小雨
博客等级 码龄14年 123粉丝 67原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值