mybatis使用xml中的if-else/choose

最近需要使用 xml 文件来实现一些增删改查,此文对 其中的 if-else 加以说明

背景:
有一个引用类,假设叫 Student

public class Student {private String name;
private String address;
private Integer yn;}

现在我们查询条件也被封装成一个引用类,例如:

public class StudentQueryModel {private String name;
private String address;
private Integer pageIndex;
private Integer pageSize;
private Integer beginIndex;}

那么使用 xml 怎么来使用和接收呢?
首先肯定是在 mapper 里面有一个方法

    List<Student> getStudentByCondition(@Param("s") StudentQueryModel model);

然后在 xml 文件中写这个方法的具体实现

<select id="getStudentByCondition"parameterType="入参类型,那么我们这里就应该是 com.xxx.xxx.StudentQueryModel "resultType="返回值类型,注意,我们虽然查询的是一些数据,也就是List,但是这里不能写 java.util.List  而是写  com.xxx..xxx.Student ,如果只想查一条数据,依旧是 com.xxx..xxx.Student ">select * from t_studentWHEREyn = 1
注意,这里最好不要用 <if></if> 标签,写不好就是坑很多,用 choose也是一样的效果<choose><when test=s.name != null and s.name != ''">and t_student.name = #{s.name}</when></choose><choose><when test="s.address != null and s.address != ''">and t_student.address = #{s.address}</when></choose>limit #{s.beginIndex}, #{s.pageSize};//这里最好是在外面算出来,在调用该方法之前就将这两个值算好放到 model 中 不要在这里进行加减乘除的运算,弄不好也有坑</select>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/1871.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024 应届校招经验分享(非互联网篇)

&#x1f4e2;&#x1f4e2;&#x1f4e2; 2024年应届毕业生&#xff0c;浙江大学计算机研究生。自23年秋招开始至今&#xff0c;博主先后拿到了互联网行业、机械制造行业、国企央企、高校体制等多家企业和单位的数十个Offer&#xff0c;了解多行业中的计算机求职方向&#xff…

Java转go,我用了12小时,10小时在解决环境问题

Part1 问题背景 作为一个资深的Java开发者&#xff0c;我深知面向对象的高级语言&#xff0c;语法是不用学的。需要的时候搜索就可以了&#xff0c;甚至可以用ChatGPT来写。 之前我做一个安全多因素校验服务。因为是临时服务&#xff0c;扩展性上基本没有要求&#xff0c;为了快…

Vulnhub靶机 DC-6 打靶实战 详细渗透测试过程

Vulnhub靶机 DC-6 详细渗透流程 打靶实战 目录 Vulnhub靶机 DC-6 详细渗透流程 打靶实战一、将靶机导入到虚拟机当中二、渗透测试主机发现端口扫描信息探测web渗透目录爆破爆破后台密码反弹shell搜集有价值信息SSH远程登录提权反弹jens用户权限的shell 提权利用 一、将靶机导入…

stable diffusion本地部署@win10

一键无脑安装stable-diffusion-webui stable diffusion是当前非常出色的文生图模型&#xff0c;要优于以前gan文生图模型。现在有了stable-diffusion-webui软件&#xff0c;可以一键安装&#xff0c;大大简化了操作难度。本文档就是stable-diffusion-webui在windows 10上的安装…

openfeign整合sentinel进行降级

pom.xml <!--nacos-服务注册发现--> <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <!--添加openfeign依赖--> <dependency&g…

誉天教育新班上新,免费试听!

数通HCIP 周末班 2024/4/20 阮老师 RHCE 周末班 2024/4/20 徐老师 云计算直通车 周末班 2024/4/20 田老师 欧拉HCIE 周末班 2024/4/20 晏老师 存储HCIE 晚班 2024/4/22 高老师 云服务直通车 周末班 2024/4/27 高老师 安全HCIE 晚班 2024/5/6 胡老…

#天空星定时器点灯

一、定时器信息 STM32F407VET6一共有14个定时器&#xff0c;包括2个高级控制定时器、8个通用定时器、2个基本定时器和2个看门狗定时器。 高级定时器&#xff08;TIMER1和TIMER8&#xff09;是四通道定时器&#xff0c;支持输入捕获和输出比较。可以产生PWM信号控制电机和电源管…

基于springboot实现的摄影跟拍预定管理系统

开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09; 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven…

嵌入式Linux开发实操(十九):Nand Flash驱动的实现

前言: nand flash从硬件连接上看,如下图,有专用接口,数据线有8或16根。 Nand Flash按每个存储单元Cell内存储比特个数不同可分为 SLC(Single-Level Cell存储1个比特)、MLC(Multi-Level Cell存储2个比特) 、 TLC(Triple-Level Cell存储3个比特)、QLC(Quad-Level C…

mysql基础9——时间函数

统计一天中每小时的销售数量和销售金额 将数据按照小时进行分组统计 关键就是把交易时间的小时部分提取出来 使用extract()和hour() 使用extract()获取小时的值 extract(type from date) 表示从日期时间数据date中抽取type指定的部分 select extract(hour from b.transd…

❤️新版Linux零基础快速入门到精通——第三部分❤️

❤️新版Linux零基础快速入门到精通——第三部分❤️ 非科班的我&#xff01;Ta&#xff01;还是来了~~~3. Linux权限管控3.1 认知root用户3.1.1 Switch User——su3.1.2 sudo命令3.1.3 为普通用户配置sudo认证 3.2 用户和用户组3.2.1 用户、用户组3.2.2 用户组管理3.2.3 用户管…

突破编程_前端_SVG(元素碰撞检测)

1 什么是碰撞检测 SVG 元素的碰撞检测&#xff0c;顾名思义&#xff0c;就是检测两个或多个 SVG 图形元素是否发生相交或重叠的过程。这在许多场景中都非常有用&#xff0c;例如游戏开发、动画设计、交互式图表等&#xff0c;需要精确判断图形元素之间的位置关系。 SVG 元素的…

声明式事务

文章目录 1.事务分类1.传统方式解决事务2.声明式事务 2.声明式事务案例1.需求分析2.解决方案分析3.数据表创建4.编写GoodsDao.java1.编写配置文件JdbcTemplate_ioc.xml2.单元测试 5.编写GoodsService.java6.配置事务管理器JdbcTemplate_ioc.xml7.进行测试 3.debug事务管理器Dat…

【Linux】在ubuntu快速搭建部署K8S(1.27)集群

ubuntu快速安装K8s1.27 &#xff08;一&#xff09;环境说明1.硬件环境2.Ubuntu环境设置 &#xff08;二&#xff09;安装配置containerd1.安装2.配置3.启动 &#xff08;三&#xff09;所有节点操作1.安装runc和cni2.节点系统设置、关闭临时分区3.修改内核参数4.安装 kubeadm、…

力扣爆刷第124天之回溯五连刷

力扣爆刷第124天之回溯五连刷&#xff08;分割回文、复原IP、子集&#xff09; 文章目录 力扣爆刷第124天之回溯五连刷&#xff08;分割回文、复原IP、子集&#xff09;一、131. 分割回文串二、93. 复原 IP 地址三、78. 子集四、90. 子集 II五、91. 非递减子序列 一、131. 分割…

稀碎从零算法笔记Day56-LeetCode:组合总和 Ⅳ

题型&#xff1a;DP、数组 链接&#xff1a;377. 组合总和 Ⅳ - 力扣&#xff08;LeetCode&#xff09; 来源&#xff1a;LeetCode 题目描述 给你一个由 不同 整数组成的数组 nums &#xff0c;和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的…

【算法刷题day30】Leetcode:332. 重新安排行程、51. N 皇后、37. 解数独

文章目录 Leetcode 332. 重新安排行程解题思路代码总结 Leetcode 51. N 皇后解题思路代码总结 Leetcode 37. 解数独解题思路代码总结 草稿图网站 java的Deque Leetcode 332. 重新安排行程 题目&#xff1a;332. 重新安排行程 解析&#xff1a;代码随想录解析 解题思路 代码 /…

代码随想录算法训练营第四十一天| 343.整数拆分、96.不同的二叉搜索树

系列文章目录 目录 系列文章目录343. 整数拆分动态规划 96.不同的二叉搜索树动态规划 343. 整数拆分 动态规划 动规五部曲&#xff1a; 确定dp数组&#xff08;dp table&#xff09;以及下标的含义&#xff1a;dp[i]表示分拆数字i&#xff0c;可以得到的最大乘积为dp[i]。确…

盲人出行挑战与曙光:“盲人视觉辅助技术研发”助力无障碍生活

作为一名资深记者&#xff0c;我深感盲人朋友们在日常出行中面临的种种困难。然而&#xff0c;在科技日新月异的今天&#xff0c;一项名为蝙蝠避障的专为盲人视觉辅助技术研发的领域正在以前沿科技成果&#xff0c;为改善盲人出行困境带来希望之光。本文将深入探讨这一技术如何…

力扣刷题4.22

88. 合并两个有序数组 解题思路&#xff1a; 双指针加单指针 同时从后往前遍历原始的nums1和2&#xff0c;比较大小&#xff0c;大的往后站。 class Solution:def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None:"""Do not ret…