java如何向mysql数据库中进行批量新增?
1.controller代码:
@ApiOperation(value = "批量新增",httpMethod = "GET") @GetMapping("/test10") private void test10() { //批量新增 userService.batchInsert(); }
2.service代码
//批量新增 @Override public void batchInsert() { List<User> userList = new LinkedList<>(); for(int i = 0;i < 100000; i++){ User user = new User(); String iStr = String.valueOf(i); user.setId(iStr); user.setAccount(iStr); user.setPwd(iStr); userList.add(user); } userMapper.delete(new QueryWrapper<>()); this.batchInsert1(userList); userMapper.delete(new QueryWrapper<>()); this.batchInsert2(userList); } //for循环新增(一般在数据量小,不需要考虑性能的情况下使用) private void batchInsert1(List<User> userList) { long start = System.currentTimeMillis(); for(User user : userList){ userMapper.insert(user); } long end = System.currentTimeMillis(); long time = (end - start)/1000; System.out.println(time);//新增100000条数据,总耗时100秒 } //使用mybatis框架中的foreach标签批量新增(一般在数据量大,需要考虑性能的情况下使用) private void batchInsert2(List<User> userList) { long start = System.currentTimeMillis(); userMapper.batchInsert2(userList); long end = System.currentTimeMillis(); long time = (end - start)/1000; System.out.println(time);//新增100000条数据,总耗时3秒 }
3.dao代码
//使用mybatis框架中的foreach标签批量新增(一般在数据量大,需要考虑性能的情况下使用) void batchInsert2(List<User> userList);
4.XML代码
<!--使用mybatis框架中的foreach标签批量新增(一般在数据量大,需要考虑性能的情况下使用)--> <insert id="batchInsert2" parameterType="java.util.List"> insert into user (id, account, pwd) values <foreach collection="userList" item="item" separator="," > (#{item.id,jdbcType=VARCHAR}, #{item.account,jdbcType=VARCHAR}, #{item.pwd,jdbcType=VARCHAR}) </foreach> </insert>
下一篇:
使用java批量更新数据呀