服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - 基于mybatis中数组传递注意事项

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

2022-01-24 12:52程序员_王者or青铜 Java教程

这篇文章主要介绍了mybatis中数组传递注意事项,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

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

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

例如如下代码:

1.直接传递数组

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

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

2.将数字放入map中传递

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

如果 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的属性值应当和传过来的参数值相对应

以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/qq_27101653/article/details/80664618

延伸 · 阅读

精彩推荐