mybatis使用xml中的if-else/choose

news/2024/9/23 11:43:07/
xmlns="http://www.w3.org/2000/svg" style="display: none;">

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

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

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

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

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

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

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

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

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.ppmy.cn/news/1430742.html

相关文章

maven3.9的settings.xml 内容学习

settings.xml 文件介绍 settings.xml 是 Maven 的配置文件&#xff0c;它允许你自定义 Maven 的行为&#xff0c;比如设置仓库、代理、认证信息等。在 Maven 3.9 中&#xff0c;settings.xml 的结构和内容可能与之前的版本相似&#xff0c;但可能会有一些小的改进或变化。下面…

nacos配置mysql(windows)

nacos默认是使用的内置数据库derby ,可通过配置修改成mysql,修改成mysql之后&#xff0c;之前配置在derby的数据会丢失 本文使用mysql版本为8.0.22 nacos版本为2.3.1 在mysql里面先创建一个数据库test(名称自定义&#xff0c;和后面配置文件里面的一样就好了) 在上面创建的数据…

element UI 走马灯 initial-index动态赋值 不生效问题

图片列表点击展示大图&#xff0c;点开不是当前的图片 initial-index属性动态赋值不生效 解决方法&#xff1a; 1.设置initial-index初始值为null initialIndex:null2.设置走马灯轮播数组初始化为[] imgList:[]3.点击图片获取图片的索引&#xff0c;赋值给initialIndex&#x…

Leetcode 225:用队列实现栈

请你仅使用两个队列实现一个后入先出&#xff08;LIFO&#xff09;的栈&#xff0c;并支持普通栈的全部四种操作&#xff08;push、top、pop 和 empty&#xff09;。 实现 MyStack 类&#xff1a; void push(int x) 将元素 x 压入栈顶。int pop() 移除并返回栈顶元素。int to…

【LeetCode热题100】【二分查找】搜索旋转排序数组

题目链接&#xff1a;33. 搜索旋转排序数组 - 力扣&#xff08;LeetCode&#xff09; 同样是要在数组中查找元素&#xff0c;不同的是这次的数组是这样//的&#xff0c;升序数组&#xff0c;但是往前移动了一下&#xff0c;也就是两段升序&#xff0c;456123这样 看了一位天才…

将组件 赋值给变量li 想拿到 组件的html页面结构 但是 打印出来的是 文件路径 该如何实现呢?

需求 import { ref } from vue; import refrigerationRight from /views/bim3D/components/right/refrigerationRight.vue const liref({lis:refrigerationRight }) const refrigerationclick()>{console.log(li) }##方法 import { createApp } from vue; import refriger…

线性表的顺序存储如何设计实现?

如何存储 顺序及链式实现 计算机中的状态

特殊类的设计、C++四种类型转换

&#x1f436;博主主页&#xff1a;ᰔᩚ. 一怀明月ꦿ ❤️‍&#x1f525;专栏系列&#xff1a;线性代数&#xff0c;C初学者入门训练&#xff0c;题解C&#xff0c;C的使用文章&#xff0c;「初学」C &#x1f525;座右铭&#xff1a;“不要等到什么都没有了&#xff0c;才下…