插入数据失败

插入数据失败

   @Test
public  void testBatch(){
SqlSession sqlSession=null;
try{
long st=new Date().getTime();
List list=new ArrayList();
sqlSession=MyBatisUtils.openSession();
for (int i=1;i<1000;i++) {
for (int j=1;j<10000;j++){
Student student = new Student();
student.setRegNo(1234);
student.setName("小王");
student.setSex("");
student.setAge(17);
student.setMajor("Java");
student.setGrade("2020");
list.add(student);

}
}
sqlSession.insert("student.batchStudent",list);
sqlSession.commit();
long et=new Date().getTime();
System.out.println("时间;"+(et-st)+"毫秒");

}catch (Exception e){
if (sqlSession!=null){
sqlSession.rollback();
}
throw  e;
}finally {
MyBatisUtils.closeSession(sqlSession);
}
}

​java.lang.OutOfMemoryError: Java heap space

    at java.util.Arrays.copyOf(Arrays.java:3332)
    at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:124)
    at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:448)
    at java.lang.StringBuilder.append(StringBuilder.java:136)
    at java.lang.StringBuilder.append(StringBuilder.java:76)
    at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:484)
    at java.lang.StringBuilder.append(StringBuilder.java:166)
    at java.util.StringJoiner.add(StringJoiner.java:185)
    at org.apache.ibatis.scripting.xmltags.DynamicContext.appendSql(DynamicContext.java:65)
    at org.apache.ibatis.scripting.xmltags.ForEachSqlNode$PrefixedContext.appendSql(ForEachSqlNode.java:204)
    at org.apache.ibatis.scripting.xmltags.ForEachSqlNode$FilteredDynamicContext.appendSql(ForEachSqlNode.java:161)
    at org.apache.ibatis.scripting.xmltags.StaticTextSqlNode.apply(StaticTextSqlNode.java:30)
    at org.apache.ibatis.scripting.xmltags.MixedSqlNode.lambda$apply$0(MixedSqlNode.java:32)
    at org.apache.ibatis.scripting.xmltags.MixedSqlNode$$Lambda$13/128359175.accept(Unknown Source)
    at java.util.ArrayList.forEach(ArrayList.java:1249)
    at org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:32)
    at org.apache.ibatis.scripting.xmltags.ForEachSqlNode.apply(ForEachSqlNode.java:79)
    at org.apache.ibatis.scripting.xmltags.MixedSqlNode.lambda$apply$0(MixedSqlNode.java:32)
    at org.apache.ibatis.scripting.xmltags.MixedSqlNode$$Lambda$13/128359175.accept(Unknown Source)
    at java.util.ArrayList.forEach(ArrayList.java:1249)
    at org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:32)
    at org.apache.ibatis.scripting.xmltags.DynamicSqlSource.getBoundSql(DynamicSqlSource.java:39)
    at org.apache.ibatis.mapping.MappedStatement.getBoundSql(MappedStatement.java:297)
    at org.apache.ibatis.executor.statement.BaseStatementHandler.<init>(BaseStatementHandler.java:64)
    at org.apache.ibatis.executor.statement.PreparedStatementHandler.<init>(PreparedStatementHandler.java:41)
    at org.apache.ibatis.executor.statement.RoutingStatementHandler.<init>(RoutingStatementHandler.java:46)
    at org.apache.ibatis.session.Configuration.newStatementHandler(Configuration.java:576)
    at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:48)
    at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)
    at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)


Process finished with exit code -1

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

哈哈哈哈   看看这个?

https://blog.csdn.net/qq_43584064/article/details/115696543

好帮手慕阿园 2021-07-29 18:31:29

同学你好,报错显示是内存溢出,这里同学循环数据较大,所以导致内存溢出,同学可以将内层循环条件改成j<10试试

祝学习愉快~

  • 提问者 宝慕林9159553 #1

    如果想插入千万级的数据怎么处理

    2021-07-29 19:32:44
  • 提问者 宝慕林9159553 #2

    如果想插入千万级的数据怎么处理

    2021-07-29 19:32:49
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师