读一个文件(每行是一条记录,一共60040行),把每一行包装成一个LogBean,存放到Vector里面,
然后把Vector 传给数据库连接,
每行对应一个数据库的insert纪录。
就是说读出所有行,然后insert 到数据库中。
[code="java"]
Vector list = new Vector();
String[] nextLine;
while ((nextLine = reader.readNext()) != null) {
LogBean bean = new LogBean();
bean.setName(nextLine[0]);
bean.setID(nextLine[1]);
bean.setTEAM("TEAM");
bean.setSUB_TEAM("SUBTEAM");
list.add(bean);
rows++;
}[/code]
是在web叶面上处理的。
Tomcat 报错了, 我看了一下报错的文件有60040行 ,就是说我的vector的size 是60040,是不是这会导致outOfMemory?
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Servlet execution threw an exception
root cause
java.lang.OutOfMemoryError: Java heap space
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.27 logs.
这么多行一次操作,产生java.lang.OutOfMemoryError: Java heap space 异常很正常。
下面链接是这个异常的解决方法,不过你这么多数据操作对内存要求太高了。
就算自己设置的话,也不知道你内存有那么大没。。
[url]http://blog.csdn.net/jxzxm1_2/archive/2008/05/31/2499751.aspx[/url]
Vector 类可以实现可增长的对象数组。与数组一样,它包含可以使用整数索引进行访问的组件。但是,Vector 的大小可以根据需要增大或缩小,以适应创建 Vector 后进行添加或移除项的操作。
每个向量会试图通过维护 capacity 和 capacityIncrement 来优化存储管理。capacity 始终至少应与向量的大小相等;这个值通常比后者大些,因为随着将组件添加到向量中,其存储将按 capacityIncrement 的大小增加存储块。应用程序可以在插入大量组件前增加向量的容量;这样就减少了增加的重分配的量。
它是没有限制大小的,但一直增加就会java.lang.OutOfMemoryError: Java heap space ,内存不足啊,