- private final Set<Top20XOverXRecord> getResults(Date date) throws InstantiationException, IllegalAccessException, ClassNotFoundException
- {
- /*
- * gets the current records as of the specified date
- */
- Set<Top20Record> records= getCurrentRecords(date);
- /*
- * gets the parameter total on that date
- */
- logger.info("The captured date is: "+ date);
- logger.info("Records retrieved!");
- Connection conn=null;
- PreparedStatement stmt=null;
- String sql, paramType;
- if(records.size()!=20)
- {
- throw new RuntimeException("Expected 20 records, got"+records.size());
- }
- Set<Date> dates=getOtherDates(date);
- if(dates.size()!=2)
- {
- throw new RuntimeException("Expected 2 dates, got: "+ dates.size());
- }
- else
- {
- System.out.println(dates.toString());
- }
- Top20XOverXRecordStore store= new Top20XOverXRecordStore(records,dates);
- paramType=getParameterType();
- sql="select transactionType,sum("+paramType+") as total from app.rawdata where"
- +" myDate in (?, ?) and transactionType in (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) group by transactionType,myDate order by total desc";
- try
- {
- Properties props= new Properties();
- props.put("user","test");
- props.put("password","test");
- Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();
- conn=DriverManager.getConnection(protocol+dbName+";create=false",props);
- stmt= conn.prepareStatement(sql);
- int i=1;
- for (Date tempDate : dates)
- {
- java.sql.Date sqldate= new java.sql.Date(tempDate.getTime());
- System.out.println("Thesqldate is: "+sqldate);
- stmt.setDate(i,sqldate);
- logger.info("The retrieved date is: "+tempDate);
- i++;
- }
- for (Top20Record record : records)
- {
- String type=record.getTransactionType();
- System.out.println("The transaction type is: "+type);
- stmt.setString(i,type);
- i++;
- }
- ResultSet rset= stmt.executeQuery();
- while(rset.next())
- {
- Top20Record record= new Top20Record(rset.getString("transactionType"),paramType,rset.getDouble(2),date);
- System.out.println("The record in getResults reads: "+record.getTransactionType()+ " "+ record.getParameterType()+ " "+ record.getParameterValue()+" "+ record.getMyDate()+ " ");
- logger.info("Results going to be stored");
- store.addRecord(record);
- logger.info("The results have been stored");
- }
- }
- catch (SQLException e)
- {
- // TODO Auto-generated catch block
- logger.log(Level.WARNING,"Exception getting data",e);
- logger.warning("Discarding data because of previous error");
- records.clear();
- e.printStackTrace();
- }
- finally
- {
- if(stmt!=null)
- {
- try
- {
- stmt.close();
- }
- catch(SQLException e)
- {
- logger.log(Level.WARNING,"Could not close statement",e);
- }
- }
- if(conn!=null)
- {
- try
- {
- conn.close();
- }
- catch(SQLException e)
- {
- logger.log(Level.WARNING,"Could not close db connection",e);
- }
- }
- }
- return store.getResults();
- }