zoukankan      html  css  js  c++  java
  • 关于 mybatis 中 in 写法,<foreach collection="xxx" item="xxx" index="index" open="(" separator="," close=")"> 参数详解

    转自:https://www.cnblogs.com/xuehuashanghe/p/12882762.html

    使用 mybatis 时,如果要使用到 in 写法,要使用  foreach ,里面几个参数,看了很多地方,都说的不清不楚,自己最后各种测试,这里详细说下:

    (1)collection = “” ,这个参数是 dao 层(mapper)接口方法里面传过来的集合参数,如果dao 层传的参数只有一个,这里写关键字 list(如果是数组,写 array)

    例子:

      dao 层:User getInfo(List<Integer> user_ids)
           collection = "list"

    如果有多个参数,并且使用了 @Param 注解(import org.apache.ibatis.annotations.Param),则这里要写注解里面的参数!

    例子: dao 层  :User getInfo(@Param("user_ids")List<Integer> user_ids,@Param("xxx")String xxx)

      collection = "user_ids"   

    (2)item = “” ,集合里面的单个值,给下面  #{ } 用

    (3)index = "" ,这个是遍历的下标,举个简单的例子立刻明白,就是平时 for 循环,我们定义的 i 一样

    例子: for(int i = 0 ;i < 10 ; i ++){

       }

    因此这个参数随便定义都可以,有就行

    (4)open  separator  close  这3个比较好理解,就是  ( , , ,) 这样子啦,拼接括号,中间逗号隔开的意思

     select:

     List<CityCollection> getCollectionByIdList(@Param("idList")List<Integer> idList);

    SELECT
    c.id,
    c.city_image_url cityImageUrl,
    c.province_name provinceName,
    c.country_name countryName,
    c.city_name cityName,
    ce.city_name enCityName,
    ce.country_name enCountryName,
    ce.province_name enProvinceName
    FROM
    t_c c
    LEFT JOIN t_ci_en ce ON ce.id = c.id
    WHERE
    c.id IN
    <foreach collection="idList" index="index" item="item" open="("
    separator="," close=")">
    #{item}
    </foreach>
    ORDER BY
    field (
    c.id,
    <foreach collection="idList" item="item" separator=",">
    #{item}
    </foreach>
    )

    删除:
    Integer deleteAllCollectionByIdListAndUserId(@Param("idList")List<Integer> idList, @Param("userId")Integer userId);

    DELETE
    FROM
    t_collection_city
    WHERE
    city_id IN
    <foreach collection="idList" index="index" item="item" open="("
    separator="," close=")">
    #{item}
    </foreach>
    AND
    user_id = #{userId}
     
  • 相关阅读:
    类方法代码重构寻找坏味道
    迭代二分查找二分查找
    系统牛逼[置顶] 使用RAMP理解内在动机 Understanding Intrinsic Motivation with RAMP
    对象服务器Webservices获取天气
    手机服务器Android消息推送(二)基于MQTT协议实现的推送功能
    概率小数2013年阿里巴巴暑期实习招聘笔试题目(不完整,笔试时间:2013.5.5)
    像素颜色JavaFX示例简易图片处理工具
    算法队列SPFA算法详解
    选择文件Eclipse制作jar包
    nullnull推箱子
  • 原文地址:https://www.cnblogs.com/yangsanluo/p/14240157.html
Copyright © 2011-2022 走看看