Mybatis 动态SQL语句foreach

来源:互联网 发布:最心酸的一句话知乎 编辑:程序博客网 时间:2024/06/07 04:55

foreach:包含以下属性:

  1. collection :传递过来的参数名字。
  2. item,变量名字,collection 中的一个对象。当传递的是map时,item代表value.
  3. index,索引名字,当迭代map时,为key值。
  4. open:开头的字符串。
  5. close:结尾的字符串。
  6. separator 每次循环的分隔符。

对于list

    int insertList(@Param("liu") List<SysUser> users); <insert id="insertList">    insert into sys_user(user_name,user_password,user_email,user_info)    values    <!-- liu 默认值为list item 自由定义指collection 中的对象,foreach中的数据为一次,多次使用separator处理-->    <foreach collection="liu" item="user" separator=",">      (        #{user.userName},#{user.userPassword},#{user.userEmail},#{user.userInfo}      )    </foreach>  </insert>

对于 map

 int updateByMap(@Param("collection1") Map<String ,Object> map); <!-- collection1 为传递过来的值,默认值为_parameter,item代表value,index 代表key-->  <update id="updateByMap">    update sys_user    set    <foreach collection="collection1" item="liu" index="yang" separator=",">      ${yang} = #{liu}    </foreach>    where id = #{collection1.id}  </update>
原创粉丝点击