在模拟数据时可能会对数据进行大量的修改
如果逐条修改数据量小的话还好如果数据量过大
单纯的每一请求会话的时间就够你受的
但我们使用mybatis时可以使用 foreach 进行批量修改
<update id="updateVolunteerTimes" parameterType="arraylist">
<foreach collection="list" item="item" index="index" open="" close="" separator=";">
update user <set>user_volunteerTime=${item.userVolunteerTime}</set>where user_id=${item.userId}
</foreach>
</update>
测试代码如下
@Test
public void aaa()
{
List<Users> list=new ArrayList<>();
for(int i=111;i<10210;i++) {
int random = new Random().nextInt(1500) + 1;
Users users1 = new Users();
users1.setUserId(i);
users1.setUserVolunteerTime(random);
list.add(users1);
}
userMapper.updateVolunteerTimes(list);
}
注意在进行批量操作数据时要在
url 上加上 " &allowMultiQueries=true"
否则会报 Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:
意思是允许批量更新