mybatis @select注解 插入list
时间: 2023-10-09 17:06:13 浏览: 197
@Select注解是用于查询操作的,不适用于插入操作。如果要插入一个list,可以使用MyBatis提供的批量插入操作。可以在mapper.xml文件中编写如下代码:
```
<insert id="insertList" parameterType="java.util.List">
insert into table_name (column1, column2, column3) values
<foreach collection="list" item="item" separator=",">
(#{item.column1}, #{item.column2}, #{item.column3})
</foreach>
</insert>
```
其中,parameterType指定参数类型为List,list是要插入的对象列表。在values后面使用foreach循环遍历list中的元素,将每个元素的属性值插入到对应的列中。
在Java代码中,可以使用MyBatis提供的SqlSession的insert方法来执行这个插入操作。例如:
```
List<MyObject> list = new ArrayList<>();
// 添加要插入的对象到list中
...
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
int count = sqlSession.insert("mapper.insertList", list);
sqlSession.commit();
} finally {
sqlSession.close();
}
```
其中,"mapper"是mapper.xml文件中的namespace,"insertList"是mapper.xml文件中定义的insert操作的id。使用sqlSession.insert方法执行插入操作,返回插入的记录数。最后需要手动提交事务。
阅读全文