基于mybatis中数组传递注意事项

编辑: admin 分类: java 发布时间: 2021-12-03 来源:互联网
目录
  • mybatis中传数组时应当注意的地方
    • 1.直接传递数组
    • 2.将数字放入map中传递
  • mybatis传入参数为数组、list的写法
    • 1.当传入参数为数组
    • 2.当传入参数为集合时

mybatis中传数组时应当注意的地方

parameterType为主要注意点之一,foreach循环为注意点之二

例如如下代码:

1.直接传递数组

如果 parameterType使用的是 数组参数 例如上述的Long[], 则foreach循环 collection中 必须使用 array(其他代码可以忽略主要看以上两点)

2.将数字放入map中传递

如果 parameterType使用的是 数组参数 例如上述的java.util.HashMap,则foreach循环 collection中 使用参数名称即可(其他代码可以忽略主要看以上两点)

mybatis传入参数为数组、list的写法

1.当传入参数为数组

List<ContractRealtion> selectDuplicateSkus(@Param("skuNo") String[] skuNo,@Param("realtionId")Integer realtionId);
  <select id="selectDuplicateSkus" resultMap="BaseResultMap" parameterType="java.util.List">
    SELECT
    <include refid="Base_Column_List" />
     FROM V_CONTRACT_REALTION
     WHERE IS_DEL=0
     and SKU_NO in
     <foreach collection="skuNo" item="item" index="index" open="(" separator="," close=")">
      #{item}
    </foreach>
    <if test="realtionId != null ">
      and CONTRACT_LABLE_ID != #{realtionId,jdbcType=INTEGER}
    </if>
  </select>

2.当传入参数为集合时

 List<InformationSkuData> selectSkuDownSale(List<String> skuNOs);
  <select id="selectSkuDownSale" resultType="com.vedeng.op.information.domain.InformationSkuData" parameterType="java.util.List">
    select SKU_NO as skuNo
    from V_SKU
    where IS_DEL=0
    and SKU_NO in
    <foreach collection="list" item="item" index="index" open="(" separator="," close=")">
      #{item}
    </foreach>
    and IS_ON_SALE=0
      </select>

collection的属性值应当和传过来的参数值相对应

以上为个人经验,希望能给大家一个参考,也希望大家多多支持自由互联。

【本文由http://www.1234xp.com/xgzq.html首发,转载请保留出处,谢谢】