• mybatis中foreach使用


    一、foreach 属性使用

    
       #{mchntCd}
    
    
    1. item:  集合中元素迭代时的别名,该参数为必选,通过别名进行取值
    2. index:在list和数组中,index是元素的序号,在map中,index是元素的key,非必填
    3. open: foreach代码的开始符号,一般是(和close=")"合用。常用在in(),values()时。非必填
    4. separator:元素之间的分隔符,例如在in()的时候,separator=","会自动在元素中间用“,“隔开,避免手动输入逗号导致sql错误,如in(1,2,)这样。非必填
    5. close: foreach代码的关闭符号,一般是)和open="("合用。常用在in(),values()时。非必填
    6. collection: 要做foreach的对象,作为入参
      1. 传入是集合,也就是接口里面用的  List nameList    那么 使用 collection = “list”
      2. 传入的是数组,接口里面 String[] namestrs ,那么 使用 collection = “array”
      3. 如果传入的是一个实体bean,实体bean里面有一个属性为 list ids 那么collection = “ids ”,如果实体bean中对应ids是一个对象,ids 里面有一个属性为 List usernames,那么collection = “ids.usernames”

    二、代码使用

            1、实体类 list  mchntCds

     mapper接口  ---》 list方式

    int queryDiscDerateCount(List mchntCds);

    mapper映射xml:

       2、实体类 list  userlist,实体类中有 list 属性

    实体类:

    1. @Data
    2. public class MchntDiscDerateDto {
    3. private String mchntCd = "";
    4. }
    mapper接口
    
    List getDiscDerateList(List discDto);

    mapper映射xml:

    3、数组  String[] params      用 array 

    mapper 接口

    int queryDiscDerateCount(String[] mchntCds);

    mapper映射xml:

    4、传入的参数是实体类,并且实体中包含数组和集合

    实体类:

    1. @Data
    2. public class UserVo {
    3. private Long id;
    4. private Long supplierId;
    5. private Long[] ids;
    6. private List clientIdList;
    7. }

    mapper接口

    List queryList(UserVo select);

    mapper映射文件xml

    5、传入多个list或者array,不使用实体进行封装。用注解@Params, collection使用到Param中定义的别名

    mapper接口

    List queryList(@Param("idArray") Long[] array, @Param("clientIdList") List list);

    mapper映射文件xml

    三、总结

        1、mapper 接口中添加 @Param注解的场合,list,array将会失效;

        2、使用了 @Param注解 collection的内容需要使用Param中的别名来指定你需要用到的list或者array

  • 相关阅读:
    新建Mybatis项目
    路由重分布的概念与配置
    骁龙咣咣咣三脚,再次改写格局
    基于JavaSwing+MySQL的清朝古代名人数据管理系统设计
    扬帆际海—shopee跨境店和本土店谁更有优势?
    android系统目录结构
    C# VisionPro 海康相机SDK源代码
    涟源举办系列文旅活动推动湖南文旅产业发展!
    4点说明,为什么说母乳是宝宝高定的独家配方?母乳到底有多独家
    网络赚钱项目 - 虚拟项目如何选择产品
  • 原文地址:https://blog.csdn.net/qq_36260963/article/details/138192420