我在mysql表中有1M行,当我执行下面的代码时,我是java持久性api然后我得到java堆错误:
int counter = 0;
while (counter < 1000000) {
java.util.Collection<MyEntityClass> data = myQuery.setFirstResult(counter)
.setMaxResults(1000).getResultList();
for(MyEntityClass obj : data){
System.out.println(obj);
}
counter += 1000;
}
Run Code Online (Sandbox Code Playgroud)
当你点击"下一步"时,我想知道JTable是否真的挂在所有那些旧引用上.我不相信这是一个持久性问题.无论你在JTable后面有什么支持数据结构,我都要确保在添加下一批记录之前清除它.这样旧的值可以是GC'd.
您的JTable不应该有ResultSet.拥有一个从客户端隐藏此类详细信息的持久层会更好.查询一批值(而不是整个数据集),将其从ResultSet加载到数据结构中,并在finally块中关闭ResultSet和Statement.您需要在创建它们的方法范围内关闭这些资源,否则您会遇到麻烦.
| 归档时间: |
|
| 查看次数: |
1263 次 |
| 最近记录: |