Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Opération `update` pour l'Employé et le Département | Dernières Retouches
Manipulation des Données Java avec Hibernate
course content

Contenu du cours

Manipulation des Données Java avec Hibernate

Manipulation des Données Java avec Hibernate

1. Aperçu de JDBC
2. Fondamentaux de Hibernate
3. Dernières Retouches

book
Opération `update` pour l'Employé et le Département

Mise à jour de l'Employé

Commençons à ajouter les touches finales au fondement de notre projet, et maintenant nous devons implémenter ce que vous avez déjà implémenté dans le chapitre précédent pour l'entité Role. Notre tâche maintenant est d'implémenter la même fonctionnalité pour l'entité Employee. Nous sommes intéressés par 2 méthodes :

  1. Mise à jour complète de l'employee ;
  2. Mise à jour du salary d'un employé ;
  3. Les mises à jour de Rôle et de Département sont déjà implémentées.

Commençons par le premier point. Si vous avez réussi la tâche précédente, comprendre comment cela fonctionne ne devrait pas être un problème pour vous.

Nous réassignons tous les champs des entités avec les champs mis à jour.

Voici à quoi cela ressemblera dans le code :

Comme vous pouvez le voir, il n'y a rien de compliqué à cela. Nous assignons simplement tous les anciens champs de l'employé aux nouveaux champs. De cette façon, nous mettons à jour les informations de l'employé dans la base de données.

Passons maintenant au point suivant, où nous devons mettre à jour le salaire de cet employé.

Nous avons plusieurs options pour changer le salaire :

  1. Augmenter le salaire d'un certain montant ;
  2. Diminuer le salaire d'un certain montant ;
  3. Augmenter le salaire d'un certain pourcentage ;
  4. Diminuer le salaire d'un certain pourcentage.

Comme vous pouvez le voir, il y a de nombreuses options, mais elles ont toutes le même objectif. Par conséquent, une bonne solution serait de surcharger cette méthode. Ce sera un moyen d'adhérer au polymorphisme en POO.

Remarque

Il y a aussi une option pour écrire une seule méthode, dans laquelle nous passerons un enum spécifique pour déterminer quelle méthode utiliser. Cependant, cette pratique est peu courante dans le développement Java, car elle n'adhère pas pleinement aux principes de la POO. Vous pouvez essayer de l'implémenter vous-même, mais nous utiliserons le polymorphisme.

Alors, écrivons des méthodes pour les premier et deuxième points :

Dans ce code, il n'y a rien de compliqué non plus. Nous récupérons et modifions le salary de l'employé, puis nous mettons à jour l'employé dans la base de données en utilisant la méthode session.merge().

Ici, j'ai utilisé une addition simple et une augmentation par pourcentage.

Implémentons des méthodes similaires, mais cette fois pour diminuer le salaire. Peut-être que l'employé montrera une mauvaise performance, et nous devrons le pénaliser.

L'implémentation des méthodes sera presque identique ; nous devons juste changer le signe plus en signe moins.

Voici à quoi cela ressemblera dans le code :

La seule différence que nous avons faite, en plus de changer le signe, est d'ajouter une vérification pour s'assurer que le montant ne devienne pas négatif. Sinon, ce serait trop sévère pour l'employé.

Mais vous avez peut-être remarqué que ces méthodes effectuent certaines opérations. Par conséquent, nous devons les déplacer vers la couche service. Dans la couche DAO, une seule méthode de mise à jour devrait rester. Ce n'est pas difficile à faire.

Voici à quoi ressemblera l'implémentation dans la couche service :

Maintenant, testons la fonctionnalité de ces méthodes dans la classe Main pour nous assurer que tout fonctionne :

Super, nous avons réussi à mettre Bob à l'épreuve. Dans le prochain chapitre, votre tâche sera d'implémenter des méthodes similaires pour l'entité Department.

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 3. Chapitre 1
We're sorry to hear that something went wrong. What happened?
some-alt