zoukankan      html  css  js  c++  java
  • MyBatis中传递数组参数和List参数时if-test判空和判断长度的写法

    场景

    前端传递一个部门id的数组作为查询条件查询部门id在这个数组中的数据。

    在MyBatis的xml中获取到了这个数组参数后怎样进行if-test的判空与长度判断。

    注:

    博客:
    https://blog.csdn.net/badao_liumang_qizhi
    关注公众号
    霸道的程序猿
    获取编程相关电子书、教程推送与免费下载。

    实现

    在mapper接口层传递数组参数

     public List<KqDksz> selectKqDkszListBySx(@Param("array") int[] bmids, String xm, String dkzt);

    然后在对应的xml中

        <select id="selectKqDkszListBySx"  resultMap="KqDkszResult">
            <include refid="selectKqDkszVoJoinJibenXinXi"/>
            <where>
                <if test="array != null and array.length >0"> and j.bmid in
                    <foreach collection="array" item="item" open="(" separator="," close=")">
                        ${item}
                    </foreach>
                 </if>
            </where>
        </select>

    这里就可以通过array获取传递的数组并遍历。

    这里的数组参数不是必传的,所以需要加if-test的判断

    <if test="array != null and array.length >0">

    首先判断其不为空,并且判断其长度大于0。因为有可能传递空数组的情况。

    因为这里是传递的数组对象,所以这里是使用的array.length属性

    注意length不是方法

    但是如果传递的参数时list的话,就要使用如下方式

    <if test="list != null and list.size() > 0">
    博客园: https://www.cnblogs.com/badaoliumangqizhi/ 关注公众号 霸道的程序猿 获取编程相关电子书、教程推送与免费下载。
  • 相关阅读:
    c++父类指针子类指针转化分析
    setbuf手册
    c++细节
    cf727e
    总结
    UVa 10192 Vacation (最长公共子序列)
    HUNNU 11313 最长公共子序列(LCS)
    HDU 2069 Coin Change (经典DP)
    UVa 674 Coin Change (经典DP)
    UVa 10131 Is Bigger Smarter? (LDS+数据结构排序)
  • 原文地址:https://www.cnblogs.com/badaoliumangqizhi/p/13402502.html
Copyright © 2011-2022 走看看