mybatis如何使用xml中的if-else/choose

 更新时间:2024年04月26日 11:56:15   作者:九伯都  
最近需要使用xml文件来实现一些增删改查,此文对其中的if-else 加以说明,使用 xml 怎么来使用和接收呢,下面小编给大家讲解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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java异常处理与throws关键字用法分析

    Java异常处理与throws关键字用法分析

    这篇文章主要介绍了Java异常处理与throws关键字用法,结合实例形式分析了java常见的异常、错误处理及throws关键字相关使用技巧、注意事项,需要的朋友可以参考下
    2019-01-01
  • java中创建写入文件的6种方式详解与源码实例

    java中创建写入文件的6种方式详解与源码实例

    这篇文章主要介绍了java中创建写入文件的6种方式详解与源码实例,Files.newBufferedWriter(Java 8),Files.write(Java 7 推荐),PrintWriter,File.createNewFile,FileOutputStream.write(byte[] b) 管道流,需要的朋友可以参考下
    2022-12-12
  • java实现图片验证码

    java实现图片验证码

    这篇文章主要为大家详细介绍了java实现图片验证码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • 详解Java类加载器与双亲委派机制

    详解Java类加载器与双亲委派机制

    这篇文章主要为大家介绍一下Java中的类加载器与双亲委派机制,文中通过示例为大家进行了详细的介绍,对我们学习Java有一定帮助,需要的可以参考一下
    2022-08-08
  • Spring注解之@FunctionalInterface详解(函数式接口)

    Spring注解之@FunctionalInterface详解(函数式接口)

    @FunctionalInterface是Java8注解,标识仅含一个抽象方法的函数式接口,支持Lambda,编译检查确保符合定义,提升可读性,非强制,继承方法需注意计数,Object方法不计入
    2025-09-09
  • Springboot敏感字段脱敏的实现思路

    Springboot敏感字段脱敏的实现思路

    这篇文章主要介绍了Springboot敏感字段脱敏的实现思路,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2021-09-09
  • Spring Security添加二次认证的项目实践

    Spring Security添加二次认证的项目实践

    在用户自动登录后,可以通过对密码进行二次校验进而确保用户的真实性,本文就来介绍一下Spring Security添加二次认证的项目实践,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • IntelliJ IDEA创建普通的Java 项目及创建 Java 文件并运行的教程

    IntelliJ IDEA创建普通的Java 项目及创建 Java 文件并运行的教程

    这篇文章主要介绍了IntelliJ IDEA创建普通的Java 项目及创建 Java 文件并运行的教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • Java中的内部类超详细讲解

    Java中的内部类超详细讲解

    内部类是定义在另一个类内部的类,可分为成员、静态、局部和匿名内部类,这篇文章主要介绍了Java中内部类的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-07-07
  • Servlet+JavaBean+JSP打造Java Web注册与登录功能

    Servlet+JavaBean+JSP打造Java Web注册与登录功能

    比作MVC的话,控制器部分采用Servlet来实现,模型部分采用JavaBean来实现,而大部分的视图采用Jsp页面来实现,接下来我们就来详细看看如何用Servlet+JavaBean+JSP打造Java Web注册与登录功能
    2016-05-05

最新评论