springboot中mapper文件里该语法应该怎么写
时间: 2024-03-03 12:53:52 浏览: 75
在Spring Boot中,使用Mybatis作为ORM框架,我们可以在mapper文件中编写SQL语句。如果需要批量插入数据,可以使用Mybatis提供的foreach标签来实现。具体语法如下:
```
<insert id="batchInsert" parameterType="java.util.List">
INSERT INTO 表名 (字段1, 字段2, ...)
VALUES
<foreach collection="list" item="item" index="index" separator=",">
(#{item.field1}, #{item.field2}, ...)
</foreach>
</insert>
```
其中,`batchInsert`为该SQL语句的唯一标识符,`parameterType`指定了传入的参数类型,这里为`java.util.List`。
`<foreach>`标签中的`collection`属性指定了要遍历的集合,`item`属性指定了集合中每个元素的别名,在SQL中可以通过`${item.field1}`的方式引用每个元素的属性值。`index`属性可以指定当前元素在集合中的索引,可选。
`<foreach>`标签中的`separator`属性指定了每个元素之间的分隔符,这里为逗号。注意,最后一个元素后面不能有分隔符。
例如,插入一个students表中的多条数据可以使用如下语句:
```
<insert id="batchInsertStudents" parameterType="java.util.List">
INSERT INTO students (name, age, gender)
VALUES
<foreach collection="list" item="item" index="index" separator=",">
(#{item.name}, #{item.age}, #{item.gender})
</foreach>
</insert>
```
注意,这里的`#{item.name}`等对应的是Java对象的属性,不是表中的字段名。同时,集合中的元素类型必须与mapper文件中指定的`parameterType`一致。
阅读全文