foreach 标签一般用于遍历集合,构建in条件语句或者批量操作语句
<insert id="batchSave" parameterType="java.util.List">
INSERT INTO tb_user (name,age,sex) values
<foreach collection="users" item="user" index="index" separator=",">
(#{user.name},#{user.age},#{user.sex})
</foreach>
</insert>
相应的Mapper里面的代码:
import org.springframework.data.repository.query.Param;
public interface UserMapper {
int batchSave(@Param(value = "users")List<User> users));
}
以下是foreach标签的各个属性:
collection:表示迭代集合的名称,可以使用@Param注解指定,如上所示
item:表示本次迭代获取的元素,若collection为List、Set或者数组,则表示其中的元素;若collection为map,则代表key-value的value
index:在List、Set和数组中,index表示当前迭代的位置,在map中,index代指是元素的key
separator:mybatis会在每次迭代后给sql语句append上separator属性指定的字符
假设接口中传递的list如下所示:
User user1=new User();
user