为什么实参是数组名(首地址),mybatis接收数组实参的确是一个数组


案例是给一个用户赋予多个权限多个权限用其对应的主键 id 为参数,组成了 一个id数组传给springMVC,然后springMVC传给mybatis然后mybatis批量插入。其实类似的场景还有批量删除多个也是类似的。

 

springMVCmybatis接收数组参数时最好不要使用 int, long等原始类型,而应该使用它们对应的包装类型不然当传入的参数为空时,会报错而包装类型可以使鼡null表示传入的空值。

我们看到使用了 foreach 来循环传递进来的数组 privIds最后组成的sql语句如下所示:

 

6. 批量删除多个的处理

删除时,和前面批量插入处悝也是极其类似的只在最后mybatis中xml中sql的写法有点区别:

比较批量删除和批量插入,可以看出 foreach 中的 open="(" 和 close=")" 只在循环的开始和结束会加上separator="," 是每循環一次,就加一次逗号

7. 批量插入传入对象List的例子:

其实掌握了 批量插入和批量删除,批量更新也是一样的


案例是给一个用户赋予多个权限多个权限用其对应的主键 id 为参数,组成了 一个id数组传给springMVC,然后springMVC传给mybatis然后mybatis批量插入。其实类似的场景还有批量删除多个也是类似的。

我要回帖

更多关于 mybatis接收数组 的文章

 

随机推荐