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_student
WHERE
yn = 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>到此这篇关于mybatis如何使用xml中的if-else/choose的文章就介绍到这了,更多相关mybatis使用xml if-else/choose内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
浅谈Spring学习之request,session与globalSession作用域
这篇文章主要介绍了Spring学习之request,session与globalSession作用域的相关内容,需要的朋友可以参考下。2017-09-09
SpringBoot3.3.X整合Mybatis-Plus的实现示例
本文介绍了在Spring Boot 3.3.2中整合MyBatis-Plus 3.5.7,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2025-03-03
Java异常报错: java.io.IOException: Broken pipe解决方案
这篇文章主要介绍了Java异常报错:java.io.IOException: Broken pipe的解决方案,java.io.IOException: Broken pipe是Java网络编程中最常见的错误之一,通常发生在客户端和服务端之间的网络连接异常断开时,需要的朋友可以参考下2025-10-10
JDK1.7 Paths,Files类实现文件夹的复制与删除的实例
下面小编就为大家分享一篇JDK1.7 Paths,Files类实现文件夹的复制与删除的实例,具有很好的参考价值,希望对大家有所帮助。以前跟随小编过来看看吧2017-11-11


最新评论