数据库返回ResultSet的问题?(在线等待)(帮忙顶一下也给分) 我晕,循环在外面!Statement s=conn.createstatement();ResultSet rs=s.excutequery(sql);while (rs.next()){}…… 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果返回这么多的记录,很可能算法有问题,需要返回这么多吗关闭resultset和connection要放在try{}catch{}finally{}中的finally里 statement不要放在循环里,一个statement可以多次使用。 不会出现你说的情况,把整张表放入内存中,至于你出现的内存急剧上升的问题,应该是你代码的问题,算法有问题,同意一楼所说:Statement s=conn.createstatement();ResultSet rs=s.excutequery(sql);这两句实例化对象的语句应该放在循环的外面,如果要实例化几千个ResultSet和Statement对象,占用100M内存不是没有可能啊,呵呵。建议改为:try{Statement s=conn.createstatement();ResultSet rs=s.excutequery(sql);for(int i=0;i<2000;i++){…………}catch(Exception e){}finally{rs.close();s.close();} 另外借你的地方做个广告,大家帮我啊,200分相送,帮忙出谋划策,200不够可以再加,各位大侠去看看啊!http://expert.csdn.net/Expert/topic/2120/2120463.xml?temp=.1377832主 题: 用JAVA实现图形化流程定制的功能,用户通过拖拽绘制流程,提交后经流程信息和节点之间的关系写入数据库,大家提点思路就好! 作 者: phoenix7789 (火鸟) 问题点数: 200 对不起,我想是我没说清楚,应该这样。public String[][] Result(String sql){String[][] info;try{ Statement s=conn.createstatement(); ResultSet rs=s.excutequery(sql); …… ……//把rs放到info里 rs.close(); s.close();}catch(SQLException e){return null;}return info;}public void test(String sql[]){for(int i=0;i<2000;i++)this.Result(sql[i]);} wa! info你要放那么多数据阿,几百万?? 难怪那么多内存。不能取除你所需要的数据,然后再处理。干吗全取出来 Statement s=conn.createstatement(); ResultSet rs=s.excutequery(sql); …… ……//把rs放到info里 ??????那该有多大?? :)------------------------------ 每次我都把statement关闭了,有什么问题么? 提点小建议: 这样做:把你要读出的数据分页,然后每次只提出一小部分来,还有最好在catch后加上finally处理,这样是最稳妥的办法! M个值的数组中,选取N个数的全排列组合 IBM MQ问题 java&unicode 困惑 java如何读写xml文件?? 高手帮忙!JTextField 的问题 java连接mysql时的中文显示问题 java编程思想第二版和第三版,我应该选择哪个呢 #applet 大家用的多吗?据说 IE 将不再支持内嵌java vm? 如何在JAVA环境里调用网页 try效率问题 我设计一个报表设计器,需要一个绘图面板,怎么解决重量组件和轻量组件的重叠关系呢? 谁能给我解释一下这一段程序
关闭resultset和connection要放在try{}catch{}finally{}中的finally里
Statement s=conn.createstatement();
ResultSet rs=s.excutequery(sql);
这两句实例化对象的语句应该放在循环的外面,如果要实例化几千个ResultSet和Statement对象,占用100M内存不是没有可能啊,呵呵。建议改为:
try{
Statement s=conn.createstatement();
ResultSet rs=s.excutequery(sql);
for(int i=0;i<2000;i++){
……
……
}
catch(Exception e)
{}
finally{
rs.close();
s.close();
}
主 题: 用JAVA实现图形化流程定制的功能,用户通过拖拽绘制流程,提交后经流程信息和节点之间的关系写入数据库,大家提点思路就好!
作 者: phoenix7789 (火鸟)
问题点数: 200
public String[][] Result(String sql){
String[][] info;
try{
Statement s=conn.createstatement();
ResultSet rs=s.excutequery(sql);
……
……//把rs放到info里
rs.close();
s.close();
}catch(SQLException e){
return null;
}
return info;
}public void test(String sql[]){
for(int i=0;i<2000;i++)this.Result(sql[i]);
}
不能取除你所需要的数据,然后再处理。干吗全取出来
ResultSet rs=s.excutequery(sql);
……
……//把rs放到info里 ??????
那该有多大?? :)
------------------------------
这样做:把你要读出的数据分页,然后每次只提出一小部分来,还有最好在catch后加上finally处理,这样是最稳妥的办法!