Ajout de la javadoc
This commit is contained in:
@@ -8,22 +8,49 @@ import java.sql.Statement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* Classe pour gérer la connexion à la base de données et effectuer des opérations de lecture et d'écriture
|
||||
*
|
||||
* Cette classe permet de se connecter à une base de données MariaDB et d'effectuer des opérations de lecture et d'écriture.
|
||||
*
|
||||
* @version 1.0
|
||||
* @author Moncef STITI
|
||||
* @see PlayerScore
|
||||
* @see SQLException
|
||||
* @see Connection
|
||||
* @see DriverManager
|
||||
* @see Statement
|
||||
* @see ResultSet
|
||||
* @see PreparedStatement
|
||||
*/
|
||||
public class Database {
|
||||
// Chargement des variables d'environnement
|
||||
/**
|
||||
* URL de connexion à la base de données
|
||||
*/
|
||||
private static final String URL = "jdbc:mariadb://dwarves.iut-fbleau.fr/stiti";
|
||||
|
||||
/**
|
||||
* Identifiants de connexion à la base de données
|
||||
*/
|
||||
private static final String LOGIN = "stiti";
|
||||
|
||||
/**
|
||||
* Mot de passe de connexion à la base de données
|
||||
*/
|
||||
private static final String PASSWORD = "stiti1234";
|
||||
|
||||
// Variable de passerelle entre le programme et la base de données
|
||||
/**
|
||||
* Connexion à la base de données
|
||||
*/
|
||||
private Connection database;
|
||||
|
||||
/**
|
||||
* Ouvre la connexion avec la base de données
|
||||
* Constructeur pour initialiser la connexion à la base de données
|
||||
* @throws SQLException Si une erreur se produit lors de la connexion à la base de données
|
||||
*/
|
||||
public Database() throws SQLException {
|
||||
try {
|
||||
@@ -43,7 +70,10 @@ public class Database {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Récupère la connexion à la base de données
|
||||
* @return La connexion à la base de données
|
||||
*/
|
||||
public Connection getDatabase() {
|
||||
return this.database;
|
||||
}
|
||||
@@ -65,10 +95,15 @@ public class Database {
|
||||
seed = rs.getLong("series_id");
|
||||
}
|
||||
}
|
||||
|
||||
return seed;
|
||||
}
|
||||
|
||||
/**
|
||||
* Récupère le nom de la série correspondant au mode de jeu (series_id)
|
||||
* @param seriesId L'ID de la série (mode de jeu)
|
||||
* @return Le nom de la série associée à ce mode de jeu
|
||||
* @throws SQLException Si une erreur se produit lors de la récupération du nom de la série
|
||||
*/
|
||||
public List<PlayerScore> getAllScores(long seriesId) throws SQLException {
|
||||
List<PlayerScore> allScores = new ArrayList<>();
|
||||
|
||||
@@ -95,7 +130,11 @@ public class Database {
|
||||
return allScores;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Récupère toutes les séries de la base de données
|
||||
* @return Les séries stockées dans la base de données
|
||||
* @throws SQLException Si une erreur se produit lors de la récupération des séries
|
||||
*/
|
||||
public List<String> getAllSeries() {
|
||||
List<String> series = new ArrayList<>();
|
||||
try {
|
||||
@@ -112,8 +151,11 @@ public class Database {
|
||||
return series;
|
||||
}
|
||||
|
||||
|
||||
// New method to get series filtered by date range
|
||||
/**
|
||||
* Récupère les séries dans une plage de dates
|
||||
* @return La liste des séries créées dans la plage de dates spécifiée
|
||||
* @throws SQLException Si une erreur se produit lors de la récupération des séries
|
||||
*/
|
||||
public List<String> getSeriesByDateRange(Date startDate, Date endDate) {
|
||||
List<String> series = new ArrayList<>();
|
||||
try {
|
||||
@@ -132,7 +174,14 @@ public class Database {
|
||||
return series;
|
||||
}
|
||||
|
||||
// New method to count series within a date range
|
||||
/**
|
||||
* Compte le nombre de séries créées dans une plage de dates
|
||||
* @param startDate Date de début
|
||||
* @param endDate Date de fin
|
||||
* @param onlyDeveloperCreated Indique si seules les séries créées par les développeurs doivent être comptées
|
||||
* @return Le nombre de séries créées dans la plage de dates spécifiée
|
||||
* @throws SQLException Si une erreur se produit lors de la récupération du nombre de séries
|
||||
*/
|
||||
public int countSeriesByDateRange(Date startDate, Date endDate, boolean onlyDeveloperCreated) {
|
||||
int count = 0;
|
||||
try {
|
||||
@@ -157,7 +206,16 @@ public class Database {
|
||||
}
|
||||
|
||||
|
||||
// New method to get paginated series within a date range
|
||||
/**
|
||||
* Récupère les séries dans une plage de dates, paginées
|
||||
* @param startDate Date de début
|
||||
* @param endDate Date de fin
|
||||
* @param page Numéro de page
|
||||
* @param itemsPerPage Nombre d'éléments par page
|
||||
* @param onlyDeveloperCreated Indique si seules les séries créées par les développeurs doivent être récupérées
|
||||
* @return La liste des séries créées dans la plage de dates spécifiée, paginée
|
||||
* @throws SQLException Si une erreur se produit lors de la récupération des séries
|
||||
*/
|
||||
public List<String> getSeriesByDateRangePaginated(Date startDate, Date endDate,
|
||||
int page, int itemsPerPage,
|
||||
boolean onlyDeveloperCreated) {
|
||||
@@ -191,16 +249,11 @@ public class Database {
|
||||
return series;
|
||||
}
|
||||
|
||||
|
||||
// Optional: Method to get series within a specific number of days
|
||||
public List<String> getRecentSeries(int days) {
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
calendar.add(Calendar.DAY_OF_YEAR, -days);
|
||||
Date pastDate = calendar.getTime();
|
||||
|
||||
return getSeriesByDateRange(pastDate, new Date());
|
||||
}
|
||||
|
||||
/**
|
||||
* Récupère la seed correspondant au nom de la série
|
||||
* @return La seed associée au nom de la série
|
||||
* @throws SQLException Si une erreur se produit lors de la récupération de la seed
|
||||
*/
|
||||
public long getSeedByName(String name) throws SQLException {
|
||||
String query = "SELECT series_id FROM Series WHERE name = " + "\'" + name + "\'" +";";
|
||||
long seed = -1; // Valeur par défaut si le seed n'est pas trouvé
|
||||
@@ -211,10 +264,13 @@ public class Database {
|
||||
seed = rs.getLong("series_id");
|
||||
}
|
||||
}
|
||||
|
||||
return seed;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ajoute un score à une série
|
||||
* @throws SQLException Si une erreur se produit lors de l'ajout du score
|
||||
*/
|
||||
public void addScore(long seriesId, int score) throws SQLException {
|
||||
String insertQuery = "INSERT INTO Scores (series_id, score) VALUES (?, ?)";
|
||||
try (PreparedStatement stmt = this.database.prepareStatement(insertQuery)) {
|
||||
@@ -227,7 +283,11 @@ public class Database {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Ajoute une seed personnalisée à la base de données
|
||||
* @param customSeed La seed personnalisée à ajouter
|
||||
* @throws SQLException Si une erreur se produit lors de l'ajout de la seed
|
||||
*/
|
||||
public void addCustomSeed(long customSeed) throws SQLException {
|
||||
// Vérifier si la seed existe déjà
|
||||
String checkQuery = "SELECT COUNT(*) FROM Series WHERE series_id = ?";
|
||||
@@ -281,6 +341,7 @@ public class Database {
|
||||
/**
|
||||
* Récupère les meilleurs scores des joueurs (limite de 10 scores)
|
||||
* @return une liste de résultats sous forme de tableau contenant le score et la date formatée
|
||||
* @throws SQLException Si une erreur se produit lors de la récupération des scores
|
||||
*/
|
||||
public List<PlayerScore> getTopPlayers() throws SQLException {
|
||||
List<PlayerScore> topPlayers = new ArrayList<>();
|
||||
@@ -305,9 +366,6 @@ public class Database {
|
||||
return topPlayers;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Récupère les scores d'une série spécifique, triés en ordre décroissant (du plus élevé au plus bas)
|
||||
* @param seriesId L'ID de la série
|
||||
|
Reference in New Issue
Block a user