你可以用ResultSet 逐个的移动游标啊。这个游标是服务器端的,不占用本地内存。但是如果你要把那么多的数据一次性读取到内存里,那肯定要占用太多的内存了。正确并显示有20000多条数据2万条,我想你有3个方法解决
1 直接把ResultSet 传给显示代码,这样虽然丑陋,但有效
2 分多次查询,每次1000条,虽然看着很好,但性能极差
3 把查询结果用指定格式保存到临时文件里面,比如用xml,然后显示部分直接对xml文件进行操作。 正规开发推荐第三种。简单有效。
我自己用,肯定用第一种,我注重结果,管它什么规范。
1 直接把ResultSet 传给显示代码,这样虽然丑陋,但有效
2 分多次查询,每次1000条,虽然看着很好,但性能极差
3 把查询结果用指定格式保存到临时文件里面,比如用xml,然后显示部分直接对xml文件进行操作。 正规开发推荐第三种。简单有效。
我自己用,肯定用第一种,我注重结果,管它什么规范。
解决方案 »
- struts2 domainmodel action无法获取页面参数
- Jboss的ClassNotFoundationException:org.hibernate.PersistentObjectException
- Struts 属性文件保存符号的时候文件格式不支持,如何转码
- axis2性能问题
- Java 实现银行字符终端报表打印问题
- MyEclipse怎么不能自动配置我的文件了?
- 关于struts2里面的chain:chain的目标方法没有被调用
- VSS错误
- 关于proxool的一个简单问题
- 如果数据库中的同一个表每个月会生成一个,怎么做映射啊?
- 急!
- myeclipse导入struts和hibernate项目问题
ResultSet rs = DbAgent.SQLQuery(mySqlString);
然后就是OutOfMemoryError.
就是返回的rs里面的数据量多了就会提示这个错误,数据量少的时候一切正常.
分多次查询确实好像是现在唯一的方法了,但是就Sybase好像没有提供每条记录的行号,也就是说无法定位到要查询第N到N+M条数据。
至于第三种,确实不会,而且现在的主要问题应该是解决ResultSet占用内存过大而引起的OutOfMemory错误。
如果用xml对接的方法,大数据量上估计时间效率很差