Esempio n. 1
0
 /**
  * Prints out the records for each symbol.
  *
  * <p>Can also verify the state of the database with csh> sqlite3 stocks.bd ".dump"
  *
  * @param symbols - list of symbols to dump data for
  */
 static Map<String, List<QuoteRecord>> dumpSymbols(List<String> symbols) throws Exception {
   Connection conn = initialize();
   Map<String, List<QuoteRecord>> symbolToQuotesMap = new TreeMap<String, List<QuoteRecord>>();
   for (int i = 0; i < symbols.size(); i++) {
     String symbolname = symbols.get(i);
     List<QuoteRecord> symbolToQuotes = new ArrayList<QuoteRecord>();
     symbolToQuotesMap.put(symbolname, symbolToQuotes);
     Statement stat = conn.createStatement();
     try {
       ResultSet rs = stat.executeQuery("SELECT * FROM " + symbolname + ";");
       // 'Date','Open','High','Low','Close','Volume','Adj Close'
       while (rs.next()) {
         String date = rs.getString("Date");
         String open = rs.getString("Open");
         String high = rs.getString("High");
         String low = rs.getString("Low");
         String close = rs.getString("Close");
         String volume = rs.getString("Volume");
         String adjClose = rs.getString("Adj Close");
         QuoteRecord qr = new QuoteRecord(date, open, high, low, close, volume, adjClose);
         symbolToQuotes.add(qr);
         // System.out.println(symbolname + ":open," + open + ":date," + date);
       }
       // TODO: why/when do we need to close this?
       rs.close();
     } catch (java.sql.SQLException e) {
       // it can happen that symbols in Symbols.java go away over time
       // so we need to ignore them
     }
   }
   return symbolToQuotesMap;
 }
Esempio n. 2
0
  /**
   * Get the database as a map from symbols (e.g., "XOM") to a list of QuoteRecords. These records
   * are sorted in ascending order by date.
   *
   * <p>The procedure does not guarantee duplicate quote records have been removed, but it does draw
   * attention to their existence. (Such records can enter the database when performing
   * tests/updates.)
   *
   * @see QuoteRecord, CheckSymbolToQuotesMap, SortSymbolToQuotesMap
   */
  public static Map<String, List<QuoteRecord>> GetDatabaseAsMap() {
    Map<String, List<QuoteRecord>> result = null;

    List<String> symbols = new ArrayList<String>();
    Connection conn = null;
    try {
      conn = initialize();
      Statement stat = conn.createStatement();
      ResultSet rs = stat.executeQuery("select * from listofsymbols;");
      while (rs.next()) {
        symbols.add(rs.getString("symbolname"));
      }
      rs.close();
      result = dumpSymbols(symbols);
      conn.close();
    } catch (Exception e) {
      e.printStackTrace();
    }
    SortSymbolToQuotesMap(result);
    // CheckSymbolToQuotesMap( result );
    return result;
  }