MyBatis 可变字段批量插入sql语句
时间: 2023-07-05 17:37:03 浏览: 148
oracle+mybatis 使用动态Sql当插入字段不确定的情况下实现批量insert
在 MyBatis 中,可以使用 foreach 标签实现可变字段批量插入 SQL 语句。具体步骤如下:
1. 在 Mapper.xml 文件中编写 SQL 语句,使用 foreach 标签包裹要插入的数据。
```xml
<insert id="batchInsert">
INSERT INTO table_name (field1, field2, field3)
VALUES
<foreach collection="list" item="item" separator=",">
(#{item.field1}, #{item.field2}, #{item.field3})
</foreach>
</insert>
```
2. 在对应的 Mapper 接口中定义方法,传入一个 List 类型的参数,参数中包含要插入的数据。
```java
public interface SomeMapper {
void batchInsert(List<SomeEntity> list);
}
```
3. 调用 Mapper 接口中的方法,传入要插入的数据即可。
```java
List<SomeEntity> list = new ArrayList<>();
// 构造要插入的数据
someMapper.batchInsert(list);
```
注意,这种方式需要保证传入的数据列表不为空,否则会报错。同时,也需要注意 SQL 注入的问题,确保传入的数据不会对 SQL 语句造成安全风险。
阅读全文