如题,在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程序中,只需要几秒钟了。肯定是我查询的写法有问题,

解决方案 »

  1.   

    同样的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="请求维修"; 
      //最好用对象,剩下的自已改吧
      

  2.   


    用了大侠的方法,可是速度还是很慢,后来自己发现加上.trim() 速度明显变快很多,可是我数据库中有很多导过来的历史数据是null值,使用。trim()会报错,不知道该怎么办了?