JSP查询数据很慢

yuuy163 2009-11-06 11:32:17
如题,在JSP页面有一段查询语句如下:
sql="select * from T_jitong6 where State!='"+cuo+"' and Hidden!='"+hidden+"' and ReportTime='"+btoday+"' order by JT6ReportID desc";
Connection con=DriverManager.getConnection(url);
PreparedStatement ps1=con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
ResultSet rs=ps1.executeQuery();
while(rs.next()){
String JT6ReportID=rs.getString("JT6ReportID");
jixing1=rs.getString("jixing");
chehao1=rs.getString("chehao");
riqi=rs.getString("ReportTime");
ruku=rs.getString("ComeinTime");
String sss="请求维修";
sql2="select * from T_jitong6ximu where JT6ReportID='"+JT6ReportID+"' and Hidden!='"+hidden+"' and State!='"+sss+"'";
Connection con2=DriverManager.getConnection(url);
PreparedStatement ps2=con2.prepareStatement(sql2,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
ResultSet rs2=ps2.executeQuery();
while(rs2.next()){
aa=aa+1;
tiren=rs2.getString("Reporter");
chejian1=rs2.getString("Peishu");
jiaojie=rs2.getString("CheckEndTime");
buwei=rs2.getString("Buwei");
gu=rs2.getString("TroublePhenomenon");
xiushi=rs2.getString("RepairStartTime");
if(xiushi==null) xiushi="";
xiushu=rs2.getString("RepairEndTime");
if(xiushu==null) xiushu="";
cheng=rs2.getString("RepairStatement");
if(cheng==null) cheng="";
ren1=rs2.getString("Repairer1");
if(ren1==null) ren1="";
yanren=rs2.getString("Checker");
if(yanren==null) yanren="";
yanshi=rs2.getString("CheckTime");
if(yanshi==null) yanshi="";
}
rs2.close();
}
rs.close();


SQL查询的结果只有不到100条的数据记录,却执行了一分钟左右。

同样的SQL语句我写在VC程序中,只需要几秒钟了。

肯定是我查询的写法有问题,
...全文
89 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuuy163 2009-11-18
  • 打赏
  • 举报
回复
自己解决了,是双循环的问题,跟其他的都没有关系。
yuuy163 2009-11-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xiaofanku 的回复:]
同样的SQL语句我写在VC程序中,只需要几秒钟了。
re:
VC能和java一样么?真不知你VC怎么学的.
Java code
sql="select * from T_jitong6 where State !=? and Hidden !=? and ReportTime =? order by JT6ReportID desc";
Connection con=DriverManager.getConnection(url);
PreparedStatement ps1=con.prepareStatement(sql);
ps1.setString(1,cuo);
ps1.setString(2,hidden);
ps1.setString(3,btoday);

ResultSet rs=ps1.executeQuery();while(rs.next()){
String JT6ReportID=rs.getString("JT6ReportID");
String jixing1=rs.getString("jixing");
String chehao1=rs.getString("chehao");
String riqi=rs.getString("ReportTime");
String ruku=rs.getString("ComeinTime");
String sss="请求维修";//最好用对象,剩下的自已改吧
[/Quote]

用了大侠的方法,可是速度还是很慢,后来自己发现加上.trim() 速度明显变快很多,可是我数据库中有很多导过来的历史数据是null值,使用。trim()会报错,不知道该怎么办了?
chen_xiangguo 2009-11-06
  • 打赏
  • 举报
回复
用等一个连接关闭后再去查询,你的一个连接没有关闭,又开了一个连接
使用两个方法代替。
街头小贩 2009-11-06
  • 打赏
  • 举报
回复
同样的SQL语句我写在VC程序中,只需要几秒钟了。
re:
VC能和java一样么?真不知你VC怎么学的.

sql="select * from T_jitong6 where State !=? and Hidden !=? and ReportTime =? order by JT6ReportID desc";
Connection con=DriverManager.getConnection(url);
PreparedStatement ps1=con.prepareStatement(sql);
ps1.setString(1,cuo);
ps1.setString(2,hidden);
ps1.setString(3,btoday);

ResultSet rs=ps1.executeQuery();
while(rs.next()){
String JT6ReportID=rs.getString("JT6ReportID");
String jixing1=rs.getString("jixing");
String chehao1=rs.getString("chehao");
String riqi=rs.getString("ReportTime");
String ruku=rs.getString("ComeinTime");
String sss="请求维修";
//最好用对象,剩下的自已改吧
街头小贩 2009-11-06
  • 打赏
  • 举报
回复
什么DB?
yuuy163 2009-11-06
  • 打赏
  • 举报
回复
知道的大侠过来看下是怎么回事?

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧