0% ont trouvé ce document utile (0 vote)
2 vues15 pages

TP13 Spring Boot Solutions

Cet atelier vise à mettre en œuvre une gestion des comptes bancaires en utilisant Spring Boot, en structurant l'application en trois couches : DAO, Métier et Présentation. Il inclut la création d'entités Java pour les clients, comptes, employés, groupes et opérations, ainsi que la configuration de la base de données MySQL. Le fichier POM.xml est également fourni pour gérer les dépendances nécessaires au projet.

Transféré par

Amal Touhami
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
2 vues15 pages

TP13 Spring Boot Solutions

Cet atelier vise à mettre en œuvre une gestion des comptes bancaires en utilisant Spring Boot, en structurant l'application en trois couches : DAO, Métier et Présentation. Il inclut la création d'entités Java pour les clients, comptes, employés, groupes et opérations, ainsi que la configuration de la base de données MySQL. Le fichier POM.xml est également fourni pour gérer les dépendances nécessaires au projet.

Transféré par

Amal Touhami
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Faculté des Sciences et Techniques de Tanger

Atelier 13 JEE (Couche DAO (Entities) avec Spring Boot)


Atelier N°13

Objectif de l’atelier : Nous désirons mettre en œuvre une gestion des


compte bancaires avec (Spring Boot)

I) Nous envisageons trois couches: couche d’accès aux données (Dao),


couche (Metier) et couche Présentation (Web) comme indique le
schéma suivant:

II) Transformez le diagramme de classes suivant en base de données:


Faculté des Sciences et Techniques de Tanger

Atelier 13 JEE (Couche DAO (Entities) avec Spring Boot)


Atelier N°13

II-1) New Spring Starter Project

II-2) New Spring Starter Project (Gestion de dépendances)


Faculté des Sciences et Techniques de Tanger

Atelier 13 JEE (Couche DAO (Entities) avec Spring Boot)


Atelier N°13

II-3) Création des entités

II-4) diagramme de classes des entités sous eclipse :


Faculté des Sciences et Techniques de Tanger

Atelier 13 JEE (Couche DAO (Entities) avec Spring Boot)


Atelier N°13

II-5) Création des entités (entities) :

[Link]

package [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
@Entity
public class Client implements Serializable {
@Id
@GeneratedValue(strategy=[Link])
private Long codeClient;
private String nomClient;
@OneToMany(mappedBy="client",fetch=[Link])
private Collection<Compte> comptes;
public Long getCodeClient() {
return codeClient;
}
public void setCodeClient(Long codeClient) {
[Link] = codeClient;
}
public String getNomClient() {
return nomClient;
}
public void setNomClient(String nomClient) {
[Link] = nomClient;
}
public Collection<Compte> getComptes() {
return comptes;
}
public void setComptes(Collection<Compte> comptes) {
[Link] = comptes;
}
public Client(String nomClient) {
super();
[Link] = nomClient;
}
public Client() {
super();
}
}

[Link]

package [Link];
import [Link];
import [Link];
import [Link];
import [Link];
Faculté des Sciences et Techniques de Tanger

Atelier 13 JEE (Couche DAO (Entities) avec Spring Boot)


Atelier N°13

import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];

@Entity
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="TYPE_CPTE",discriminatorType=[Link],l
ength=2)

public abstract class Compte implements Serializable {


@Id
private String codeCompte;
private Date dateCreation;
private double solde;

@ManyToOne
@JoinColumn(name="CODE_CLI")

private Client client;


@ManyToOne
@JoinColumn(name="CODE_EMP")
private Employe employe;
@OneToMany(mappedBy="compte")
private Collection<Operation> operations;
public Compte(String codeCompte, Date dateCreation, double solde) {
super();
[Link] = codeCompte;
[Link] = dateCreation;
[Link] = solde;
}
public Compte() {
super();
// TODO Auto-generated constructor stub
}
public String getCodeCompte() {
return codeCompte;
}
public void setCodeCompte(String codeCompte) {
[Link] = codeCompte;
}
public Date getDateCreation() {
return dateCreation;
}
public void setDateCreation(Date dateCreation) {
[Link] = dateCreation;
}
public double getSolde() {
return solde;
}
public void setSolde(double solde) {
Faculté des Sciences et Techniques de Tanger

Atelier 13 JEE (Couche DAO (Entities) avec Spring Boot)


Atelier N°13

[Link] = solde;
}
public Client getClient() {
return client;
}
public void setClient(Client client) {
[Link] = client;
}
public Employe getEmploye() {
return employe;
}
public void setEmploye(Employe employe) {
[Link] = employe;
}
public Collection<Operation> getOperations() {
return operations;
}
public void setOperations(Collection<Operation> operations) {
[Link] = operations;
}

[Link]

package [Link];

import [Link];

import [Link];
import [Link];

@Entity
@DiscriminatorValue("CC")

public class CompteCourant extends Compte {

public double getDecouvert() {


return decouvert;
}

public void setDecouvert(double decouvert) {


[Link] = decouvert;
}

private double decouvert;

public CompteCourant(String codeCompte, Date dateCreation, double solde,


double decouvert) {
super(codeCompte, dateCreation, solde);
[Link] = decouvert;
}

public CompteCourant() {
super();
Faculté des Sciences et Techniques de Tanger

Atelier 13 JEE (Couche DAO (Entities) avec Spring Boot)


Atelier N°13

// TODO Auto-generated constructor stub


}
}

[Link]

package [Link];
import [Link];
import [Link];
import [Link];

@Entity
@DiscriminatorValue("CE")

public class CompteEpargne extends Compte {

private double taux;

public double getTaux() {


return taux;
}

public void setTaux(double taux) {


[Link] = taux;
}

public CompteEpargne(String codeCompte, Date dateCreation, double solde,


double taux) {
super(codeCompte, dateCreation, solde);
[Link] = taux;
}

public CompteEpargne() {
super();
// TODO Auto-generated constructor stub
}
}
[Link]

package [Link];

import [Link];
import [Link];

import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];

import [Link];
Faculté des Sciences et Techniques de Tanger

Atelier 13 JEE (Couche DAO (Entities) avec Spring Boot)


Atelier N°13

import [Link];

@Entity

public class Employe implements Serializable {

@Id
@GeneratedValue(strategy=[Link])

private Long codeEmploye;


private String nomEmploye;

@ManyToOne
@JoinColumn(name="code_emp_sup")
private Employe employeSup;
@ManyToMany
@JoinTable(name="EMP_GR")
private Collection<Groupe> groupes;
public Employe(String nomEmploye) {
super();
[Link] = nomEmploye;
}
public Employe() {
super();
// TODO Auto-generated constructor stub
}
public Long getCodeEmploye() {
return codeEmploye;
}
public void setCodeEmploye(Long codeEmploye) {
[Link] = codeEmploye;
}
public String getNomEmploye() {
return nomEmploye;
}
public void setNomEmploye(String nomEmploye) {
[Link] = nomEmploye;
}
@JsonIgnore
public Employe getEmployeSup() {
return employeSup;
}
@JsonSetter
public void setEmployeSup(Employe employeSup) {
[Link] = employeSup;
}
@JsonIgnore
public Collection<Groupe> getGroupes() {
return groupes;
}
public void setGroupes(Collection<Groupe> groupes) {
[Link] = groupes;
}
Faculté des Sciences et Techniques de Tanger

Atelier 13 JEE (Couche DAO (Entities) avec Spring Boot)


Atelier N°13

[Link]

package [Link];

import [Link];
import [Link];

import [Link];
import [Link];
import [Link];
import [Link];
import [Link];

@Entity

public class Groupe implements Serializable {

@Id
@GeneratedValue(strategy=[Link])

private Long codeGroupe;


private String nomGroupe;

@ManyToMany(mappedBy="groupes")

private Collection<Employe> employe;


public Groupe(String nomGroupe) {
super();
[Link] = nomGroupe;
}
public Groupe() {
super();
// TODO Auto-generated constructor stub
}
public Long getCodeGroupe() {
return codeGroupe;
}
public void setCodeGroupe(Long codeGroupe) {
[Link] = codeGroupe;
}
public String getNomGroupe() {
return nomGroupe;
}
public void setNomGroupe(String nomGroupe) {
[Link] = nomGroupe;
}
public Collection<Employe> getEmploye() {
return employe;
}
public void setEmploye(Collection<Employe> employe) {
[Link] = employe;
}
Faculté des Sciences et Techniques de Tanger

Atelier 13 JEE (Couche DAO (Entities) avec Spring Boot)


Atelier N°13

[Link]

package [Link];

import [Link];
import [Link];

import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];

@Entity
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(length=1)

public class Operation implements Serializable {

@Id
@GeneratedValue(strategy=[Link])

private Long numeroOperation;


private Date dateOperation;
private double montant;

@ManyToOne
@JoinColumn(name="CODE_CPTE")
private Compte compte;

@ManyToOne
@JoinColumn(name="CODE_EMP")
private Employe employe;

public Operation(Date dateOperation, double montant) {


super();
[Link] = dateOperation;
[Link] = montant;
}
public Operation() {
super();
// TODO Auto-generated constructor stub
}
public Long getNumeroOperation() {
return numeroOperation;
}
Faculté des Sciences et Techniques de Tanger

Atelier 13 JEE (Couche DAO (Entities) avec Spring Boot)


Atelier N°13

public void setNumeroOperation(Long numeroOperation) {


[Link] = numeroOperation;
}
public Date getDateOperation() {
return dateOperation;
}
public void setDateOperation(Date dateOperation) {
[Link] = dateOperation;
}
public double getMontant() {
return montant;
}
public void setMontant(double montant) {
[Link] = montant;
}
public Compte getCompte() {
return compte;
}
public void setCompte(Compte compte) {
[Link] = compte;
}
public Employe getEmploye() {
return employe;
}
public void setEmploye(Employe employe) {
[Link] = employe;
}
}

[Link]

package [Link];

import [Link];
import [Link];

@Entity
@DiscriminatorValue("R")

public class Retrait extends Operation {

[Link]

package [Link];

import [Link];
import [Link];

@Entity
@DiscriminatorValue("V")

public class Versment extends Operation{


Faculté des Sciences et Techniques de Tanger

Atelier 13 JEE (Couche DAO (Entities) avec Spring Boot)


Atelier N°13

III) Editer le fichier de configuration [Link]:

# DataSourceSitting:

[Link] = jdbc:mysql://localhost:3306/db_banque_lsi
[Link] = root
[Link] =
[Link]-class-name=[Link]
# Sprcify the DBMS

[Link] = MYSQL

# Show or not log for each sql query

[Link]-sql= true

# Hibernate ddl auto (create, crete-drop, update)

[Link]-auto= update

# Naming Strategy

[Link]-strategy= [Link]

[Link] = [Link].MySQL5Dialect

[Link]-bean-definition-overriding=true

IV) Le fichier [Link]

<?xml version="1.0" encoding="UTF-8"?>


<project xmlns="[Link]
xmlns:xsi="[Link]
xsi:schemaLocation="[Link]
[Link]
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>[Link]</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>[Link]</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>[Link]</groupId>
<artifactId>BanqueSI</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>BanqueSI</name>
Faculté des Sciences et Techniques de Tanger

Atelier 13 JEE (Couche DAO (Entities) avec Spring Boot)


Atelier N°13

<description>Demo project for Spring Boot</description>

<properties>
<[Link]>1.8</[Link]>
</properties>

<dependencies>
<dependency>
<groupId>[Link]</groupId>
<artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency>
<dependency>
<groupId>[Link]</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>[Link]</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>[Link]</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>[Link]</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>[Link]</groupId>
<artifactId>hibernate-validator</artifactId>
<version>[Link]</version>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>[Link]</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

</project>

V) Le lancement de la classe [Link] va


Faculté des Sciences et Techniques de Tanger

Atelier 13 JEE (Couche DAO (Entities) avec Spring Boot)


Atelier N°13

générer le shéma de la base de données db_banque_lsi


Faculté des Sciences et Techniques de Tanger

Atelier 13 JEE (Couche DAO (Entities) avec Spring Boot)


Atelier N°13

Vous aimerez peut-être aussi