Vous êtes sur la page 1sur 3

**StringInstantiation

public Utilisateur login(String nomUtilisateur, String motDePasse){


ConncetionDB();
PreparedStatement pst = null;
ResultSet rs = null;
String sql = new String("SELECT * FROM utilisateur WHERE nomUtilisateur
LIKE ? AND motDePasse LIKE ?") ;
try {
Probleme: on a creer une instance de type STRING avec new String et elle est
unitule, donc on creer directement sans new car ils sont immuables.
Correction:
String sql ="SELECT * FROM utilisateur WHERE nomUtilisateur LIKE ? AND motDePasse
LIKE ?";

**EmptyCatchBlock
Sur la fonction ConncetionDB()
catch (Exception e){
}
Probleme: il ya une exception mais on a rien fait,Dans la plupart des cas, cela
annule une exception qui devrait être suivie d’effet ou signalée.
Correction: on va signaler l'exception
catch (Exception e){
System.out.println(e);
}

**LogicInversion
Sur la fonction listerLivre()
if(!(rs ==null)){
rs.close();
}
if(!(pst==null)){
pst.close();
}
Probleme:on a nier les expression entriere car l'expression est devenue tres
complexe
Correction: Utilisez l’opérateur opposé au lieu de nier l’expression entière avec
un opérateur de complément logique
if(rs !=null){
rs.close();
}
if(pst!=null){
pst.close();
}

**CheckResultSet
Sur la fonction login()
rs.next();
Utilisateur u = new Utilisateur(
rs.getString("nomCmplet"),
rs.getString("nomUtilisateur"),
rs.getString("motDePasse"),
rs.getString("role")
);
Probleme: on a pas traiter si rs.next() return un false au lieu d'un enregistrement
et cela va provoquer une error
Correction: on va gerer ce cas on verifiant si rs.next() est deffirent de faux
if (rs.next()) {
Utilisateur u = new Utilisateur(
rs.getString("nomCmplet"),
rs.getString("nomUtilisateur"),
rs.getString("motDePasse"),
rs.getString("role")
);
con.close();
return u;
} else {
return null;
}

** AbstractNaming
Dans la class Role
public abstract class Role
Probleme: Les classes abstraites doivent être nommées 'AbstractXXX'.
Correction: il faut renommer la class par AbstractRole
public abstract class AbstractRole

**AvoidReassigningParameters
Dans la methode chercherLivre qui se trouve dans la classe librairie
isbn = "Le livre avec " + isbn;
Probleme: Il n’est pas recommandé de réaffecter des valeurs aux paramètres entrants
d’une méthode car cela peut rendre le code plus difficile à comprendre.
Correction: Ajouter une cariable local dans la fonction et on refectue sur elle la
valeur de isbn avec le traitement necessaire
String msg = "Le livre avec " + isbn;

** DefaultLabelNotLastInSwitchStmt
Dans la methode afficher_livre qui se trouve dans la class Menu
switch (choix){
case 1:
Scanner sc1 = new Scanner(System.in);
System.out.println("Donnez L'ISBN de livre");
String isbn = sc1.nextLine();
librairie.chercherLivre("ISBN",isbn,u.getRole());
break;
default:
Scanner sc3 = new Scanner(System.in);
System.out.println("Donnez l'auteur de livre");
String auteur = sc3.nextLine();
librairie.chercherLivre("Auteur",auteur,u.getRole());
break;
case 2:
Probleme:Default ne se trouve pas dans la derniere etiquette de switch
Correction il faut rendre default la derniere etiquette de switch
switch (choix){
case 1:
Scanner sc1 = new Scanner(System.in);
System.out.println("Donnez L'ISBN de livre");
String isbn = sc1.nextLine();
librairie.chercherLivre("ISBN",isbn,u.getRole());
break;
case 2:
Scanner sc2 = new Scanner(System.in);
System.out.println("Donnez le titre de livre");
String titre = sc2.nextLine();
librairie.chercherLivre("Titre",titre,u.getRole());
break;
default:
Scanner sc3 = new Scanner(System.in);
System.out.println("Donnez l'auteur de livre");
String auteur = sc3.nextLine();
librairie.chercherLivre("Auteur",auteur,u.getRole());
break;

**UncommentedEmptyConstructor
Dans la classe livre sur son constructeur vide livre()
public Livre(){

}
Probleme:Le constructeur vide sans commentaire trouve les cas où un constructeur ne
contient pas d’instructions,
mais il n’y a pas de commentaire. En commentant explicitement les constructeurs
vides, il est plus facile de distinguer
les constructeurs vides commentés et non commentés.
Solusion: on commentons le constructeur vide
public Livre(){
// C'est un constructeur vide
}

Vous aimerez peut-être aussi