java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > mybatis if-else/choose

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

作者:九伯都

最近需要使用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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文