2011-05-27 60 views
-2

我有一個函數,它從數據庫中提取數據,並以表格的形式顯示在JSP中。函數被編寫成在JSP中調用的java類,但是查詢沒有執行。相同的查詢可以執行在SQL瑜伽。可能是什麼問題呢?執行查詢的問題

我的代碼是這樣

public ArrayList<CustomReportDTO> getHostAndUserAndResponsereport(String argHostId, String argColoumns, String argStartDate, String argEndDate) { 
     Connection con = null; 
     Statement stmt = null; 
     ResultSet rs = null; 
     ArrayList<CustomReportDTO> arrMetrics = new ArrayList<CustomReportDTO>(); 
     StringBuffer strQuery; 
     argStartDate = getDate(argStartDate); 
     argEndDate = getDate(argEndDate); 
     if (!argColoumns.contains(",")) { 
      argColoumns = argColoumns + ","; 
     } else { 
      argColoumns = argColoumns + ","; 
     } 

     String[] arrColoumns = argColoumns.split(","); 
     try { 
      System.out.println("Before Getting Connection"); 
      con = DBConnect.getInstance().getConnection(); 
      System.out.println("Connection__________ " + con); 
      strQuery = new StringBuffer(); 
      strQuery.append("SELECT " + argColoumns + " u.Time_stamp AS host_time_stamp,"); 
      strQuery.append("db1.queryresultset AS Concurrent_Users,"); 
      strQuery.append("db2.queryresultset AS Active_Users, "); 
      strQuery.append("db3.queryresultset AS Logged_Users,"); 
      strQuery.append("db4.queryresultset AS Anonymous_Users,"); 
      strQuery.append("urlhs.totalrsptime AS totalrsptime"); 
      strQuery.append(" FROM "); 
      strQuery.append("unix_host_history u, "); 
      strQuery.append("db_query_history db1, "); 
      strQuery.append("db_query_history db2, "); 
      strQuery.append("db_query_history db3, "); 
      strQuery.append("db_query_history db4 ,"); 
      strQuery.append("url_history urlhs "); 
      strQuery.append("WHERE "); 
      strQuery.append("u.hostid = 'HS001' AND "); 
      strQuery.append("db1.compid='CP009' AND "); 
      strQuery.append("db2.compid='CP010' AND "); 
      strQuery.append("db3.compid='CP011' AND "); 
      strQuery.append("db4.compid='CP012' AND "); 
      strQuery.append("urlhs.compid='CP013' AND "); 

      strQuery.append("SUBSTR(u.time_Stamp,1,15) = SUBSTR(db1.time_stamp,1,15) AND "); 
      strQuery.append("SUBSTR(u.time_Stamp,1,15) = SUBSTR(urlhs.time_stamp,1,15) AND "); 
      strQuery.append("SUBSTR(db1.time_Stamp,1,15) = SUBSTR(db2.time_stamp,1,15) AND "); 
      strQuery.append("SUBSTR(db1.time_Stamp,1,15)= SUBSTR(db3.time_stamp,1,15) AND "); 
      strQuery.append("SUBSTR(db1.time_Stamp,1,15) = SUBSTR(db4.time_stamp,1,15) AND "); 

      strQuery.append("u.time_stamp > '" + argStartDate + "' AND "); 
      strQuery.append("u.time_stamp < '" + argEndDate + "' "); 
      strQuery.append("ORDER BY u.time_stamp "); 
      System.out.println("Query" + strQuery); 
      System.out.println("After Getting Connection_____________"); 
      stmt = con.createStatement(); 
      System.out.println("Stament " +stmt); 
      System.out.println("After Creating Statmnet_________________________"); 
      rs = stmt.executeQuery(strQuery.toString()); 
      System.out.println("After Excecuting Query______________"); 

CustomReportDTO objUnix = null; 

      if (rs != null) { 
       while (rs.next()) { 
        objUnix = new CustomReportDTO(); 
        for (int i = 0; i < arrColoumns.length; i++) { 
         if (arrColoumns[i].equalsIgnoreCase("OpenFilesCount")) { 
          objUnix.setOpenFilesCount(rs.getString("OpenFilesCount")); 

} 
        } 
arrMetrics.add(objUnix); 

       } 


      } 
      rs.close(); 
      stmt.close(); 
      con.close(); 
     } catch (SQLException se) { 
      System.out.println("SQL Exception : "); 
      System.out.println(se.getMessage()); 

     } 
     System.out.println("Size Result _______" + arrMetrics.size()); 
     return arrMetrics; 
    } 
} 

我能得到Sysouts直到語句創建。

+5

和異常/錯誤是? – 2011-05-27 06:29:45

回答

0

沒有什麼異常看,這只是一個猜測,但也許argColumns最後需要一個逗號,沒有一個?