假设我们有一个名为 User 的实体类,包含属性 id、name 和 age,我们需要将一个 List<Map<String, Object>> 对象插入到数据库中,可以按照以下步骤进行操作:

  1. 在 mapper 接口中定义插入方法:
public interface UserMapper {
    void batchInsert(List<User> userList);
}
  1. 在 mapper.xml 文件中实现插入方法:
<insert id="batchInsert" parameterType="java.util.List">
    insert into user(id, name, age)
    values
    <foreach collection="list" item="item" separator=",">
        (#{item.id}, #{item.name}, #{item.age})
    </foreach>
</insert>
  1. 在 Service 层中处理 List<Map<String, Object>> 数据,转化为 List 对象并调用 mapper 方法进行插入:
@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;

    public void batchInsert(List<Map<String, Object>> userList) {
        List<User> users = new ArrayList<>();
        for (Map<String, Object> userMap : userList) {
            User user = new User();
            user.setId((Integer) userMap.get('id'));
            user.setName((String) userMap.get('name'));
            user.setAge((Integer) userMap.get('age'));
            users.add(user);
        }
        userMapper.batchInsert(users);
    }
}

需要注意的是,插入的 List<Map<String, Object>> 对象中的 key 必须与实体类 User 的属性名相同,否则无法转化为 User 对象。

MyBatis+SpringBoot 批量插入 List<Map<String, Object>> 数据示例

原文地址: https://www.cveoy.top/t/topic/od2V 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录