Académique Documents
Professionnel Documents
Culture Documents
APPLICATIONS RÉSEAUX
Lorince TAWAMBA
Cloud Software Engineer
Enseignant chercheur
Courriel : lorince.tawamba@gmail.com
GitHub : https://github.com/LorinceTawamba
Etude de cas 1 : Système de gestion des adresses de clients
1. Énoncé
2. Recommandations
3. Fonctionnalités attendues
■ Modélisation de la BD :
application.properties
# ===============================
# SERVEUR
# ===============================
server.port = 9091
spring.application.name = GESTION-ADRESSE
# ===============================
# DATABASE
# ===============================
spring.datasource.url =
jdbc:mysql://127.0.0.1:3306/delasalle?useLegacyDatetimeCode=fa
lse&serverTimezone=Africa/Douala&zeroDateTimeBehavior=convertT
oNull&createDatabaseIfNotExist=true&autoReconnect=true&useSSL=
false
spring.datasource.username = root
spring.datasource.password = 12345
# ===============================
# JPA / HIBERNATE
# ===============================
spring.jpa.show-sql=true
# Hibernate ddl auto (none, create, create-drop, update)
spring.jpa.hibernate.ddl-auto=update
# The SQL dialect makes Hibernate generate better SQL for the
chosen database
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.
MySQL5InnoDBDialect
Address.java
// package
package org.delasalle.rsi4.entities;
// librairies
import java.util.UUID;
/**
* Modèle Address
* @author Lorince TAWAMBA
* @version 0.0.1
* @since 30/11/2022
*/
public class Address {
private UUID addressId;
private String country;
private String city;
private Integer cityCode;
private String streetAndBuildingName;
private String streetAndBuildingNumber;
private String apartmentNumber;
}
// package
package org.delasalle.rsi4.entities;
// librairies
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.util.UUID;
/**
* Modèle Address
* @author Lorince TAWAMBA
* @version 0.0.1
* @since 30/11/2022
*/
@Entity
@Table(name = "tb_address")
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class Address {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "address_id", nullable = false, updatable =
false, columnDefinition = "BINARY(16)")
// @Type(type="org.hibernate.type.UUIDCharType") ou
columnDefinition = "BINARY(16)
// Universally unique identifier (UUID)
private UUID addressId;
// package
package org.delasalle.rsi4.repositories;
import org.delasalle.rsi4.entities.Address;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.UUID;
/**
* Rest AddressRepository
* @author Lorince TAWAMBA
* @version 0.0.1
* @since 30/11/2022
*/
public interface AddressRepository extends
JpaRepository<Address, UUID> {
}
- Créer les différents services d’implémentation de la logique métier
de l’application.
Toutes les services de l’application sont réalisé en deux temps :
➔ L’interface d’exposition du service
➔ La classe d’implémentation du service
○ @Entity
○ @Table(name = "adresse")
○ @Data
○ @AllArgsConstructor
○ @NoArgsConstructor
○ @Id
○ @GeneratedValue(strategy = GenerationType.IDENTITY)
○ @Column(name, unique, nullable)
@RequestMapping("api/v1/adresse")
@PostMapping(path = "/save")
@GetMapping(path = "/get-by-id")
@GetMapping(path = "/get-all-adresses")
@UpdateMapping(path = "/update")
@PatchMapping(path = "/update")
@DeleteMapping(path = "/delete")