Advertisement
Guest User

Untitled

a guest
Mar 28th, 2017
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 9.24 KB | None | 0 0
  1. import java.sql.Connection;
  2. import java.sql.Date;
  3. import java.sql.DriverManager;
  4. import java.sql.ResultSet;
  5. import java.sql.SQLException;
  6. import java.sql.Statement;
  7. import java.text.NumberFormat;
  8. import java.text.ParseException;
  9. import java.text.SimpleDateFormat;
  10. import java.util.Scanner;
  11.  
  12. public class Database_Reader {
  13.  
  14.     private static String EnterSelection(Scanner scanner) {
  15.         System.out.println("--------------Stock Reporting Menu--------------");
  16.         System.out.println("MENU OPTIONS:");
  17.         System.out.println("");
  18.         System.out.println("    1. List all tickers");
  19.         System.out.println("    2. Display most recent data for ticker");
  20.         System.out.println("    3. Display high and current close price for ticker");
  21.         System.out.println("    4. Display top five active tickers for date");
  22.         System.out.println("");
  23.  
  24.         System.out.println("Select number or type 'quit' to exit: ");
  25.         String userResponse = scanner.next();
  26.        
  27.         return userResponse;
  28.     }
  29.  
  30.     static Connection getConnection() {
  31.         Connection connection = null;
  32.         try {
  33.             Class.forName("com.mysql.jdbc.Driver").newInstance();
  34.             connection = DriverManager.getConnection("jdbc:mysql://184.154.73.113/davidlno_StockHistory?"
  35.                     + "user=davidlno_student&password=ez24get!&allowMultiQueries=true");
  36.         } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
  37.             e.printStackTrace();
  38.         } catch (SQLException e) {
  39.             // TODO Auto-generated catch block
  40.             System.out.println("SQLException: " + e.getMessage());
  41.             System.out.println("SQLState: " + e.getSQLState());
  42.             System.out.println("VendorError: " + e.getErrorCode());
  43.         }
  44.         return connection;
  45.     }
  46.  
  47.     static Connection getConnectionII() {
  48.         Connection connection = null;
  49.         try {
  50.             Class.forName("com.mysql.jdbc.Driver").newInstance();
  51.             connection = DriverManager.getConnection("jdbc:mysql://184.154.73.113/davidlno_StockHistory?"
  52.                     + "user=davidlno_student&password=ez24get!&allowMultiQueries=true");
  53.         } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
  54.             e.printStackTrace();
  55.         } catch (SQLException e) {
  56.             // TODO Auto-generated catch block
  57.             System.out.println("SQLException: " + e.getMessage());
  58.             System.out.println("SQLState: " + e.getSQLState());
  59.             System.out.println("VendorError: " + e.getErrorCode());
  60.         }
  61.         return connection;
  62.     }
  63.  
  64.     static void getAllTickers() {
  65.         Connection connection = getConnection();
  66.         String query = "SELECT GROUP_CONCAT(DISTINCT Ticker SEPARATOR ', ') as Ticker FROM TickerHistory";
  67.  
  68.         try {
  69.             Statement statement = connection.createStatement();
  70.             ResultSet rs = statement.executeQuery(query);
  71.  
  72.             while (rs.next()) {
  73.                 String ticker = rs.getString("Ticker");
  74.                 System.out.print(ticker);
  75.             }
  76.             System.out.println("");
  77.             rs.close();
  78.             statement.close();
  79.             connection.close();
  80.             rs = null;
  81.             statement = null;
  82.             connection = null;
  83.         } catch (SQLException e) {
  84.             System.out.println("SQLException: " + e.getMessage());
  85.             System.out.println("SQLState: " + e.getSQLState());
  86.             System.out.println("VendorError: " + e.getErrorCode());
  87.         }
  88.     }
  89.  
  90.     public static void GetGeneralTickerInfo() {
  91.         Scanner inputTicker = new Scanner(System.in);
  92.         NumberFormat formatter = NumberFormat.getCurrencyInstance();
  93.         NumberFormat formatterII = NumberFormat.getNumberInstance();
  94.  
  95.         System.out.println("Please enter a valid ticker: ");
  96.         String userResponse = inputTicker.nextLine();
  97.  
  98.         Connection connection = getConnection();
  99.         String query = "select Ticker, CompanyName, HistoryDate, OpenPrice, ClosePrice, HighPrice, LowPrice, Volume from TickerHistory where Ticker ='"
  100.                 + userResponse + "' order by HistoryDate desc limit 1";
  101.         try {
  102.             Statement statement = connection.createStatement();
  103.             ResultSet rs = statement.executeQuery(query);
  104.             if (!rs.isBeforeFirst()) {
  105.                 System.out.println("Invalid Ticker Entered");
  106.             } else {
  107.                 while (rs.next()) {
  108.                     String ticker = rs.getString("Ticker");
  109.                     String companyName = rs.getString("CompanyName");
  110.                     Date historyDate = rs.getDate("HistoryDate");
  111.                     double openPrice = rs.getDouble("OpenPrice");
  112.                     double closePrice = rs.getDouble("ClosePrice");
  113.                     double highPrice = rs.getDouble("HighPrice");
  114.                     double lowPrice = rs.getDouble("LowPrice");
  115.                     int volume = rs.getInt("Volume");
  116.  
  117.                     System.out.println(ticker + "    " + companyName + "  " + "Volume: " + (formatterII.format(volume))
  118.                             + "\n      " + "History Date: " + historyDate + "\n      " + "Open:  "
  119.                             + (formatter.format(openPrice)) + "\n      " + "High:  " + (formatter.format(highPrice))
  120.                             + "\n      " + "Low:   " + (formatter.format(lowPrice)) + "\n      " + "Close: "
  121.                             + (formatter.format(closePrice)));
  122.                 }
  123.             }
  124.             System.out.println("");
  125.             rs.close();
  126.             statement.close();
  127.             connection.close();
  128.             rs = null;
  129.             statement = null;
  130.             connection = null;
  131.         } catch (SQLException e) {
  132.             System.out.println("SQLException: " + e.getMessage());
  133.             System.out.println("SQLState: " + e.getSQLState());
  134.             System.out.println("VendorError: " + e.getErrorCode());
  135.         }
  136.     }
  137.  
  138.     public static void CheckCurrentHighPrice() {
  139.         Scanner inputTicker = new Scanner(System.in);
  140.         NumberFormat formatter = NumberFormat.getCurrencyInstance();
  141.         NumberFormat formatterII = NumberFormat.getPercentInstance();
  142.         formatterII.setMinimumFractionDigits(0);
  143.  
  144.         System.out.println("Please enter ticker: ");
  145.         String userResponse = inputTicker.nextLine();
  146.  
  147.         Connection connection = getConnection();
  148.         String query = "SELECT HistoryDate as HistoryDateI, ClosePrice, ClosePrice FROM TickerHistory WHERE Ticker ='"
  149.                 + userResponse + "' order by ClosePrice desc limit 1";
  150.  
  151.         //Connection connectionII = getConnectionII();
  152.         String queryII = "SELECT HistoryDate as HistoryDateII, ClosePrice as ClosePriceII FROM TickerHistory WHERE Ticker ='"
  153.                 + userResponse + "' order by HistoryDate desc limit 1";
  154.  
  155.         try {
  156.             Statement statement = connection.createStatement();
  157.             //Statement statementII = connectionII.createStatement();
  158.  
  159.             ResultSet rs = statement.executeQuery(query);
  160.             ResultSet rsII = statement.executeQuery(queryII);
  161.             if (!rs.isBeforeFirst()) {
  162.                 System.out.println("Invalid Ticker Entered");
  163.             } else {
  164.                 while (rs.next() && rsII.next()) {
  165.                     Date historyDate = rs.getDate("HistoryDateI");
  166.                     Date historyDateII = rsII.getDate("HistoryDateII");
  167.                     double closePrice = rs.getDouble("ClosePrice");
  168.                     double closePriceII = rsII.getDouble("ClosePriceII");
  169.                     double decrease = (closePriceII - closePrice);
  170.                     double differencePercentage = (decrease / closePrice) * 100;
  171.  
  172.                     System.out.println(historyDate + "  " + (formatter.format(closePrice)) + "\n" + historyDateII + " "
  173.                             + (formatter.format(closePriceII)) + "\n" + "Perfect Difference is: "
  174.                             + (formatterII.format(differencePercentage / 100)));
  175.                 }
  176.             }
  177.             System.out.println("");
  178.             rs.close();
  179.             rsII.close();
  180.             statement.close();
  181.             //statementII.close();
  182.             connection.close();
  183.             //connectionII.close();
  184.             rs = null;
  185.             rsII = null;
  186.             statement = null;
  187.             connection = null;
  188.            
  189.             //statementII = null;
  190.             //connectionII = null;
  191.         } catch (SQLException e) {
  192.             System.out.println("SQLException: " + e.getMessage());
  193.             System.out.println("SQLState: " + e.getSQLState());
  194.             System.out.println("VendorError: " + e.getErrorCode());
  195.         }
  196.  
  197.     }
  198.  
  199.     public static void CheckDateTicker() {
  200.         Scanner inputTicker = new Scanner(System.in);
  201.         NumberFormat formatter = NumberFormat.getNumberInstance();
  202.  
  203.         System.out.println("Please enter valid date (yyyy-mm-dd): ");
  204.         String userDate = inputTicker.next();
  205.  
  206.         Connection connection = getConnection();
  207.         String query = "select Ticker, Volume from TickerHistory where HistoryDate ='" + userDate
  208.                 + "' order by Volume desc limit 5";
  209.         try {
  210.             Statement statement = connection.createStatement();
  211.             ResultSet rs = statement.executeQuery(query);
  212.             if (!rs.isBeforeFirst()) {
  213.                 System.out.println("Invalid date entered");
  214.             } else {
  215.  
  216.                 while (rs.next()) {
  217.                     String ticker = rs.getString("Ticker");
  218.                     int volume = rs.getInt("Volume");
  219.                     System.out.println("Ticker:      " + ticker + "    " + (formatter.format(volume)));
  220.                 }
  221.             }
  222.             System.out.println("");
  223.             rs.close();
  224.             statement.close();
  225.             connection.close();
  226.             rs = null;
  227.             statement = null;
  228.             connection = null;
  229.         } catch (SQLException e) {
  230.             System.out.println("SQLException: " + e.getMessage());
  231.             System.out.println("SQLState: " + e.getSQLState());
  232.             System.out.println("VendorError: " + e.getErrorCode());
  233.         }
  234.     }
  235.  
  236.     public static void main(String[] args) {
  237.  
  238.         Scanner input = new Scanner(System.in);
  239.         boolean rerun = false;
  240.  
  241.         do {
  242.             System.out.println("");
  243.             String selection = EnterSelection(input);
  244.  
  245.             switch (selection) {
  246.             case "1":
  247.                 getAllTickers();
  248.                 rerun = true;
  249.                 break;
  250.             case "2":
  251.                 GetGeneralTickerInfo();
  252.                 rerun = true;
  253.                 break;
  254.             case "3":
  255.                 CheckCurrentHighPrice();
  256.                 rerun = true;
  257.                 break;
  258.             case "4":
  259.                 CheckDateTicker();
  260.                 rerun = true;
  261.                 break;
  262.             case "quit":
  263.                 rerun = false;
  264.                 System.out.println("...Application Ended...");
  265.                 return;
  266.             default:
  267.                 System.out.println("Invalid selection");
  268.                 rerun = true;
  269.                 break;
  270.             }
  271.  
  272.         } while (rerun = true);
  273.     }
  274.  
  275. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement