zoukankan      html  css  js  c++  java
  • mybatis传入多个数组或者多个list的实现

    mybatis传入多个数组或多个list
    此博客给出了mybatis传入多个数组或者多个List,传入多个数组或者多个List,传入多个数组或者多个List,而非传入多个参数的一种实现。(PS:传入多个参数很简单,直接去搜会有大量相关博客)
    这几天实现一个小功能,需要在查询数据库时用到两次IN查询,发现直接使用两个list会报错,去搜集了相关资料终于解决了,在此记录一下,以免下次碰到类似问题手足无措。

    直接贴需求代码:
    dao:
    需要实现的是这样子的接口:

    public List<ExamIdAndSubjectId>getIds(@Param("examIds")List<String> examIds,@Param("subjectIds")List<String>subjectIds);
     
    然而实际是这样实现的:

    public List<ExamIdAndSubjectId>getIds(@Param("ids")Ids ids);
     
    POJO类Ids的内容如下(省略get,set,toString方法):

    public class Ids {
    List<String>examIds;
    List<String>subjectIds;
    ..............
    }
     
    mapper:

    <select id="getIds" resultType="cn.siti.domain.ExamIdAndSubjectId">
    SELECT DISTINCT EB_ID AS examId,SUB_CODE AS subjectId
    FROM eqe_exam_paper_new
    WHERE EB_ID IN
    <foreach item="item" collection="ids.examIds" index="idx" open="(" separator="," close=")">
    #{item}
    </foreach>
    AND SUB_CODE IN
    <foreach item="items" collection="ids.subjectIds" index="idx" open="(" separator="," close=")">
    #{items}
    </foreach>
    </select>
     
    简单来讲,在传入多个list时,最好将多个List封装在一个pojo类里面,然后将这个pojo类作为接口的参数传过来,在mapper里面用到list时,用pojo.list方式去取list参数。数组同理。
    至于为什么需要将多个List参数封装,可以参考mybatis jar包里的源码实现(binding文件夹下的MapperMethod.class)。


    已经有人分析过此源码,在此不再套用别人的成果。附上传送门http://www.zhongruitech.com/528480084.html

    https://blog.csdn.net/zh15732621679/article/details/79678363


    ————————————————
    版权声明:本文为CSDN博主「绝命响应」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_39762130/article/details/89670000

  • 相关阅读:
    (转)导弹跟踪算法
    中文linux安装oracle界面乱码解决方案
    linux下创建oracle表空间
    [INS-20802] Oracle Net Configuration Assistant failed
    Centos6.5下Oracle 11g R2安装过程
    设置MYSQL数据库编码为UTF-8
    如何在linux系统中设置静态ip地址
    Oracle Net Configuration Assistant failed异常的解决方案
    解决安装oracle11g r2时提示pdksh conflicts with ksh-20100621-2.el6.i686问题
    CentOS增加swap分区大小
  • 原文地址:https://www.cnblogs.com/javalinux/p/15356820.html
Copyright © 2011-2022 走看看