Nantes Université

Skip to content
Extraits de code Groupes Projets

Comparer les révisions

Les modifications sont affichées comme si la révision source était fusionnée avec la révision cible. En savoir plus sur la comparaison des révisions.

Source

Sélectionner le projet cible
No results found
Sélectionner une révision Git

Cible

Sélectionner le projet cible
  • E235881S/asa-project
1 résultat
Sélectionner une révision Git
Afficher les modifications
Validations sur la source (2)
# Utiliser l'image officielle MariaDB comme base
FROM mariadb:latest
# Définir des variables d'environnement pour MariaDB
ENV MYSQL_ROOT_PASSWORD=1234
ENV MYSQL_DATABASE=asa-db
ENV MYSQL_USER=user
ENV MYSQL_PASSWORD=1234
# Copier le script d'initialisation SQL dans le dossier prévu par MariaDB
COPY init.sql /docker-entrypoint-initdb.d/
# Exposer le port 3306 (port par défaut de MariaDB)
EXPOSE 3306
-- Utiliser la base de données spécifiée
USE asa-db;
-- Créer la table Membre
CREATE TABLE IF NOT EXISTS Membre (
id INT AUTO_INCREMENT PRIMARY KEY,
nom VARCHAR(255) NOT NULL,
prenom VARCHAR(255) NOT NULL,
numEtu INT UNIQUE NOT NULL
);
-- Insérer des données d'exemple
INSERT INTO Membre (nom, prenom, numEtu) VALUES
('Doe', 'John', 239159),
('Smith', 'Jane', 512131);
......@@ -20,6 +20,11 @@
<artifactId>gson</artifactId>
<version>2.8.9</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
docker run --name mariadb-asa -e MYSQL_ROOT_PASSWORD=1234 -p 3306:3306 -d docker.io/library/mariadb:10.2
//package org.example.persistance;
package org.example.persistance;
import org.example.interfaces.EntityPersistance;
......
package org.example.persistance;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import org.example.interfaces.EntityPersistance;
import org.example.model.Member;
public class PersistanceSQL implements EntityPersistance<Member>{
static String url = "jdbc:mysql://localhost:3306/asa-db?useSSL=false&serverTimezone=UTC";
static String user = "root";
static String password = "1234";
private Connection con;
public PersistanceSQL() {
//establishConnection();
}
public void establishConnection(){
try{
Class.forName("com.mysql.cj.jdbc.Driver");
this.con=DriverManager.getConnection(url, user, password);
if (this.con == null) {
System.out.println("La connexion n'a pas aboutie");
}
}catch(Exception e){ System.out.println(e);}
}
public void closeConnection() {
try {
if (con != null && !con.isClosed()) {
con.close();
}
} catch (SQLException e) {
System.out.println("Erreur lors de la fermeture de la connexion : " + e.getMessage());
}
}
@Override
public void create(Member entity) {
establishConnection();
String query = "INSERT INTO Membre (nom, prenom, numEtu) VALUES (?, ?, ?)";
try (PreparedStatement pstmt = con.prepareStatement(query)) {
pstmt.setString(1, entity.getFirstName());
pstmt.setString(2, entity.getLastName());
pstmt.setInt(3, entity.getStudentNumber());
pstmt.executeUpdate();
} catch (SQLException e) {
System.out.println("Erreur lors de la création : " + e.getMessage());
}
}
@Override
public Member read(int id) {
establishConnection();
String query = "SELECT * FROM Membre WHERE id = ?";
try (PreparedStatement pstmt = con.prepareStatement(query)) {
pstmt.setInt(1, id);
ResultSet rs = pstmt.executeQuery();
if (rs.next()) {
return new Member(
rs.getString("nom"),
rs.getString("prenom"),
rs.getInt("numEtu")
);
}
} catch (SQLException e) {
System.out.println("Erreur lors de la lecture : " + e.getMessage());
}
closeConnection();
return null;
}
@Override
public List<Member> readAll() {
establishConnection();
String query = "SELECT * FROM Membre";
List<Member> membres = new ArrayList<>();
try (Statement stmt = this.con.createStatement();
ResultSet rs = stmt.executeQuery(query)) {
while (rs.next()) {
membres.add(new Member(
rs.getString("nom"),
rs.getString("prenom"),
rs.getInt("numEtu")
));
}
} catch (SQLException e) {
System.out.println("Erreur lors de la lecture des données : " + e.getMessage());
}
closeConnection();
return membres;
}
@Override
public void update(int id, Member modifiedMembre) {
establishConnection();
String query = "UPDATE Membre SET nom = ?, prenom = ?, email = ?, date_naissance = ? WHERE id = ?";
try (PreparedStatement pstmt = con.prepareStatement(query)) {
pstmt.setInt(1, id);
pstmt.setString(2, modifiedMembre.getFirstName());
pstmt.setString(3, modifiedMembre.getLastName());
pstmt.setInt(4, modifiedMembre.getStudentNumber());
pstmt.executeUpdate();
} catch (SQLException e) {
System.out.println("Erreur lors de la mise à jour : " + e.getMessage());
}
closeConnection();
}
@Override
public void delete(int id) {
establishConnection();
String query = "DELETE FROM Membre WHERE id = ?";
try (PreparedStatement pstmt = con.prepareStatement(query)) {
pstmt.setInt(1, id);
pstmt.executeUpdate();
} catch (SQLException e) {
System.out.println("Erreur lors de la suppression : " + e.getMessage());
}
closeConnection();
}
}
package org.example.services;
import org.example.model.Member;
import org.example.persistance.MembersPersistance;
import org.example.persistance.PersistanceSQL;
import java.util.List;
public class MembersService {
private final MembersPersistance membersPersistance = new MembersPersistance();
private final PersistanceSQL membersPersistance = new PersistanceSQL();
public List<Member> getAllMembers() {
return membersPersistance.readAll();
}
......