MyBatis:批量添加记录
在MyBatis中,批量添加记录通常使用<foreach>
标签来构建SQL语句。以下是一个示例,假设我们有一个名为User
的表,它有两个字段:id
和name
。
首先,在你的mapper接口中定义一个用于批量插入的方法:
public interface UserMapper {
void insertUsers(List<User> users);
}
然后,在mapper的XML文件中定义对应的SQL语句:
<mapper namespace="com.example.mapper.UserMapper">
<insert id="insertUsers">
INSERT INTO User (id, name)
VALUES
<foreach collection="list" item="user" separator=",">
(#{user.id}, #{user.name})
</foreach>
</insert>
</mapper>
在这个例子中,<foreach>
标签被用来遍历传入的users
列表,并为每个User
对象生成一组值,使用逗号作为分隔符。
最后,在你的服务层或者业务逻辑层中调用这个方法:
List<User> users = new ArrayList<>();
users.add(new User(1, "Alice"));
users.add(new User(2, "Bob"));
users.add(new User(3, "Charlie"));
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
userMapper.insertUsers(users);
确保在调用方法之前已经正确地开启了一个SqlSession
,并在完成操作后正确提交或回滚事务。
评论已关闭