SpringBoot MongoDB批量插入数据

1.在实体User中添加Collection注解

@Document(collection = "user")

2.UserDao中添加批量插入方法

List<User> insertCollection(List<User> userList) throws Exception;

3.UserDaoImpl中实现方法

 @Override
    public List<User> insertCollection(List<User> userList) throws Exception {
        return (List<User>) mongoTemplate.insert(userList,User.class);
    }

4.插入5000条数据与单条记录插入对比

        ArrayList<User> users = new ArrayList<User>();
        for (int i = 0; i < 5000; i++) {
            User user = new User("collection"+i,"name"+i);
            users.add(user);
        }
        long start = System.currentTimeMillis();
        List<User> resUsers = null;
        try {
            resUsers = userDao.insertCollection(users);
        } catch (Exception e) {
            System.out.println("异常了:"+e);
            // 插入id与库中重复的话会报 org.springframework.dao.DuplicateKeyException 异常
        }
        long end = System.currentTimeMillis();
        // System.out.println("resUsers.size:"+resUsers.size());
        System.out.println("批量插入耗时: "+(end-start)+" ms");


        start = System.currentTimeMillis();
        for (int i = 0; i < 5000; i++) {
            User user = new User("single"+i,"name"+i);
            users.add(user);
            userDao.save(user);
        }
        end = System.currentTimeMillis();
        System.out.println("单个插入耗时: "+(end-start)+" ms");

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/dongzhensong/article/details/88659107