# HG changeset patch # User Andrew # Date 1685911382 14400 # Sun Jun 04 16:43:02 2023 -0400 # Node ID 33ca730586c5c66368bf6d36db8e455b50db30fd # Parent 02061a3253be00ce3c62de579e959d7567cee612 Add stock results that show which companies have shares available. diff --git a/src/main/java/com/ajtjp/gearcitydata/StockMarketResult.java b/src/main/java/com/ajtjp/gearcitydata/StockMarketResult.java new file mode 100644 --- /dev/null +++ b/src/main/java/com/ajtjp/gearcitydata/StockMarketResult.java @@ -0,0 +1,75 @@ + +package com.ajtjp.gearcitydata; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; + +/** + * + * @author Andrew + */ +public class StockMarketResult { + private String companyName; + private long sharesAvailable; + private float percentAvailable; + private float selfOwnership; + + public StockMarketResult(String companyName, long sharesAvailable, float percentAvailable, float selfOwnership) { + this.companyName = companyName; + this.sharesAvailable = sharesAvailable; + this.percentAvailable = percentAvailable; + this.selfOwnership = selfOwnership; + } + + public static List getStockMarketResults(Connection conn) { + + List stockList = new ArrayList<>(); + try { + PreparedStatement stmt = conn.prepareStatement( + "select Company_Name, Stocks_Avaliable, " + + "Coalesce((Stocks_Avaliable * 1.0)/Stocks_Issued, 0) as AvailablePercentage, " + + "Stocks_Selfowned, Stocks_Issued, " + + "COALESCE(((Stocks_Selfowned * 1.0)/Stocks_Issued), 1.0) as Self_Ownership\n" + + "from CompanyList\n" + + "where Active = 1\n" + + "order by AvailablePercentage Desc"); + ResultSet rs = stmt.executeQuery(); + while (rs.next()) { + String company = rs.getString(1); + long sharesAvailable = rs.getLong(2); + float availablePercentage = rs.getFloat(3); + float selfOwnership = rs.getFloat(6); + + StockMarketResult smr = new StockMarketResult(company, sharesAvailable, availablePercentage, selfOwnership); + + stockList.add(smr); + } + + return stockList; + } + catch(SQLException ex) { + System.err.println(ex); + } + return new ArrayList<>(); + } + + public String getCompanyName() { + return companyName; + } + + public long getSharesAvailable() { + return sharesAvailable; + } + + public float getPercentAvailable() { + return percentAvailable; + } + + public float getSelfOwnership() { + return selfOwnership; + } +}