zoukankan      html  css  js  c++  java
  • 动态sql语句 入参中存在 数组 或 List

    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 id="getUserByRoleId_foreach_array" resultMap="userMapByRole">
      select * from smbms_user where userRole in
        <foreach collection="array" item="roleIds" open="(" separator="," close=")">
          #{roleIds}
        </foreach>
    </select>

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

  • 相关阅读:
    C# Serializable(转)
    ASP.NET 2.0中构造个性化网页 (转)
    ASP如何限定中英文混合的文字输出字数?
    关于clientHeight、offsetHeight、scrollHeight
    无法删除,打开的文件夹
    学习.Net的经典网站(转)
    SQL注入漏洞全接触进阶篇
    关于robots.txt
    SQL注入漏洞全接触入门篇
    关于zend解密的程序
  • 原文地址:https://www.cnblogs.com/pass-ion/p/13842344.html
Copyright © 2011-2022 走看看