mybatis中入参存在 数组或List 时,使用foreach 进行动态拼接

foreach可以在SQL语句中迭代一个集合。它的属性主要有item、index、collection、separator、close、open

  • item:表示集合中每一个元素进行迭代时的别名
  • index:指定一个名称,用于表示在迭代过程中,每次迭代到的位置
  • open:表示该语句以什么开始,in条件语句是以“(”开始 
  • separator:表示在每次迭代之间以什么符号作为分隔符,in条件语句以“,”作为分隔符
  • close:表示该语句以什么结束,in条件语句是以“)”结束
  • collection:该属性必需指定,不同情况下,该属性的值是不一样的
    • 若入参为单参数且参数类型是一个List,collection属性值为list
    • 若入参为单参数且参数类型是一个数组,collection属性值为array
    • 若传入参数为多参数,就需要把它们封装为一个Map进行处理
    • 若传入参数为多参数时,collection属性值为传入的列表名或数组名
<select >
  select * from smbms_user where userRole in
    <foreach collection="array" item="roleIds" open="(" separator="," close=")">
      #{roleIds}
    </foreach>
</select>

 

注:mybatis在传入多个参数的时候,要用注解 @Param()命名别名,否则会报错

相关文章:

  • 2022-12-23
  • 2021-11-23
  • 2022-12-23
  • 2021-10-30
  • 2022-12-23
  • 2021-11-07
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-07-12
  • 2022-12-23
  • 2022-12-23
  • 2021-09-07
  • 2022-12-23
相关资源
相似解决方案