mybatis 中数组的应用

版权声明: https://blog.csdn.net/qq_32157851/article/details/81533354

1  、如果传入参数为paramterType为Map类型。

 

public int delete(){

Map<String,Object> params= new HashMap<String ,Object>();

params.put("intIdArr",intIdArr);//intIdArr为一个int 数组

params.put("strDeviceMac",strDeviceMac);//strDeviceMac为字符串

int result = 0;
        try {
            result = sqlSessionTemplate.delete("web.delWebSite",params);
        } catch (Exception e) {
            log.error("error",e);
        }
        return result;

}

那么在xml中就的 <foreach collection="intIdArr" item="intIdArr" open="(“separator="," close=")">

collection的值要和item相同.

  <delete id="delWebSite" parameterType="java.util.Map">
        delete from tbl_website where device_mac = #{strDeviceMac} and seq_no in
        <foreach collection="intIdArr" item="intIdArr" open="("
            separator="," close=")">
            #{intIdArr}
        </foreach>
    </delete>

2 、如果单单将数组传入,不写参数类型  ,也就是paramterType没有设置

dao方法中这样写的


 

public int delete(int [] intIdArr){

int result = 0;
        try {
            result = sqlSessionTemplate.delete("web.delWebSite",intIdArr);
        } catch (Exception e) {
            log.error("error",e);
        }
        return result;

}

那么xml中这样写

  <delete id="delWebSite" parameterType="java.util.Map">
        delete from tbl_website where 1=1 and seq_no in
        <foreach collection="arry" item="intIdArr" open="("
            separator="," close=")">
            #{intIdArr}
        </foreach>
    </delete>

猜你喜欢

转载自blog.csdn.net/qq_32157851/article/details/81533354