mybatis 批量插入和where条件使用
时间: 2023-07-21 16:28:10 浏览: 90
mybatis 批量插入可以使用 `<foreach>` 标签来实现,示例代码如下:
```xml
<insert id="batchInsert" parameterType="java.util.List">
insert into my_table(col1, col2, col3)
values
<foreach collection="list" item="item" separator=",">
(#{item.col1}, #{item.col2}, #{item.col3})
</foreach>
</insert>
```
其中,`list` 是一个 `java.util.List` 类型的参数,表示要插入的数据列表。`<foreach>` 标签中的 `collection` 属性指定了要遍历的集合,`item` 属性指定了每个元素的别名,`separator` 属性指定了每个元素之间的分隔符。
如果需要使用 where 条件查询,可以使用 `<where>` 标签来动态生成 where 子句,示例代码如下:
```xml
<select id="getByCondition" resultType="MyTable">
select * from my_table
<where>
<if test="col1 != null">
and col1 = #{col1}
</if>
<if test="col2 != null">
and col2 = #{col2}
</if>
<if test="col3 != null">
and col3 = #{col3}
</if>
</where>
</select>
```
其中,`<if>` 标签中的 `test` 属性指定了条件表达式,如果条件成立,则生成对应的 where 子句。这样,当传入的参数中某个字段不为 null 时,mybatis 会自动拼接对应的 where 子句。
阅读全文