Class Queries
java.lang.Object
eds.database.Queries
- All Implemented Interfaces:
IQueries
Queries — Implementation of IQueries.
Responsibilities:
- Persist simulation run records (statistics_and_metrics table)
- Persist trade records linked to a run (trades table)
- Retrieve run records and trades for the results view
All database access goes through Database.getInstance().getConnection().
Integration:
- StatisticsCollector.Snapshot -> buildRecord() -> save() -> DB
- findById(runId) -> StatisticsAndMetricsRecord -> PerformanceDescriber
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbuildRecord(StatisticsCollector.Snapshot snap, String runName, long seed, double meanValidation, double meanMarket, double meanLimit, double meanExecution, double meanArrival, double simulationTime) Converts a StatisticsCollector.Snapshot and engine config parameters into a StatisticsAndMetricsRecord ready for persistence.findAll()Returns all simulation runs, most recent first.findById(int id) Returns a single run by id.findTradesByRunId(int runId) Returns all trades for a run ordered by conclusion time.intsaveAllTrades(List<Records.TradeRecord> trades, int runId) Persists all trades in a single transaction linked to runId.intPersists a completed simulation run to statistics_and_metrics table.
-
Constructor Details
-
Queries
public Queries()
-
-
Method Details
-
buildRecord
public Records.StatisticsAndMetricsRecord buildRecord(StatisticsCollector.Snapshot snap, String runName, long seed, double meanValidation, double meanMarket, double meanLimit, double meanExecution, double meanArrival, double simulationTime) Converts a StatisticsCollector.Snapshot and engine config parameters into a StatisticsAndMetricsRecord ready for persistence. This is the single mapping point between the model layer and database layer. Called by Controller after simulation completes.- Specified by:
buildRecordin interfaceIQueries
-
saveStatisticsAndMetrics
Persists a completed simulation run to statistics_and_metrics table.- Specified by:
saveStatisticsAndMetricsin interfaceIQueries- Parameters:
record- fully populated record (id field ignored — generated by DB)- Returns:
- the generated run id, or -1 if insert failed
-
saveAllTrades
Persists all trades in a single transaction linked to runId. Rolls back entirely on failure — no partial saves.- Specified by:
saveAllTradesin interfaceIQueries- Returns:
- number of trades saved, or -1 if transaction failed
-
findAll
Returns all simulation runs, most recent first. Returns empty list if none found. -
findById
Returns a single run by id. Returns Optional.empty() if not found — callers must handle absence. Used by ResultsView to load the just-completed run: queries.findById(runId).ifPresent(record -> describer = new PerformanceDescriber(record)) -
findTradesByRunId
Returns all trades for a run ordered by conclusion time. Returns empty list if none found.- Specified by:
findTradesByRunIdin interfaceIQueries
-