IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Implémenter le patron de conception DAO en Java par les tests unitaires,
Par Thierry Leriche-Dessirier

Le , par thierryler

0PARTAGES

3  0 
Bonjour à tous,

Je vous propose un TP en Java. Ce TP vous montre comment écrire et tester un DAO en Java. Vous allez découvrir Maven, tracer le fonctionnement avec Log4j, tester vos méthodes avec JUnit, lire des fichiers CSV avec OpenCsv et CsvEngine, gérer des ressources en Java et bien plus encore...

http://thierry-leriche-dessirier.dev...et-tester-dao/

Bonne lecture.

Et comme d'habitude, n'oubliez pas de nous indiquer vos remarques, bonnes ou négatives, à la suite de ce message.

Th.

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de Khaled.Noordin
Membre confirmé https://www.developpez.com
Le 27/12/2012 à 12:00
Salut,
Je viens de parcourir l'article que j'ai trouvé très intéressant, merci pour ce contenu
1  0 
Avatar de dadoonet95
Membre du Club https://www.developpez.com
Le 27/12/2012 à 15:07
Travail très impressionnant, super détaillé. Bravo !
1  0 
Avatar de le y@m's
Expert confirmé https://www.developpez.com
Le 02/01/2013 à 14:05
Citation Envoyé par thierryler Voir le message
Pour l'enum Sexe, j'ai mis un code pour avoir "1" et "2", comme sur le numéro de sécurité social. Ça permet d'avoir quelque chose de plus sympa dans le CSV.

Pour l'enum Race, j'ai voulu faire comme si le système à l'origine du fichier CSV (ou de la base de données) limitait le nombre de caractères à 8. C'est une contrainte qu'on retrouve encore dans de nombreux programmes.

En fait, il n'y a aucune raison pour qu'un programme distant utilise les mêmes noms d'enum que mon programme chez moi, et encore moins les mêmes notations.

Pourquoi je dis ça ? Parce que les fichiers CSV sont surtout utilisés pour transférer de l'information entre deux systèmes distants. Par exemple une boutique animalière à Bordeaux envoie une liste de chiens au format CSV au système central à Paris. En outre, cela permet à des web master tiers (sans lien avec la société) de reprendre les informations facilement, avec un format qui reste lisible.
Mais du coup l'enum est liée au-dit système. On peut vouloir utiliser l'enum dans un autre système qui a d'autres contraintes.

Si on a besoin d'utiliser des IDs particuliers (pour cause de limitation de caractère ou pour qu'un autre système puisse charger les données dans un modèle différent) c'est à la couche de sérialisation de s'en occuper (en utilisant des Map par exemple), pas au modèle .

Contrairement aux idées reçues ça ne demande pas beaucoup plus de temps à écrire et ce n'est pas plus compliqué. L'avantage est qu'on se retrouve avec un modèle simple beaucoup plus facile à lire et à appréhender. Et la spécificité due à un système est isolée du modèle .
1  0 
Avatar de hwoarang
Membre chevronné https://www.developpez.com
Le 27/12/2012 à 13:50
Pour l'instant, je n'ai lu que l'intro mais ca a l'air tres interessant. Je dirais ce que j'en pense quand j'aurais lu la suite

Merci pour le tuto en tout cas
0  0 
Avatar de le y@m's
Expert confirmé https://www.developpez.com
Le 02/01/2013 à 11:37
Beau travail .

Juste une petite remarque sur l'enum Sexe, l'attribut code me semble superflu à moins qu'il y ait une raison particulière de ne pas utiliser l'ordinal de l'enum ?
Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
public enum Sexe {

    FEMALE,
    MALE
}
// Sexe.FEMALE.ordinal() -> 0
// Sexe.MALE.ordinal() -> 1
// Sexe.values()[0] -> Sexe.FEMALE
// Sexe.values()[1] -> Sexe.MALE
Après personnellement je préfère utiliser le nom de l'enum qui rend les fichiers de config plus lisible.
Code : Sélectionner tout
1
2
String str = sexe.name();
sexe = Sexe.valueOf(str);
L'inconvénient est que cela prend un peu plus de place (mais c'est très souvent négligeable).

Pareil pour l'enum RaceDeChien, pourquoi ajouter un attribut code au lieu d'utiliser le nom de l'enum (methode name()) ?
0  0 
Avatar de thierryler
Rédacteur https://www.developpez.com
Le 02/01/2013 à 11:54
Bonjour,

Ce sont des très bonnes remarques.

Pour l'enum Sexe, j'ai mis un code pour avoir "1" et "2", comme sur le numéro de sécurité social. Ça permet d'avoir quelque chose de plus sympa dans le CSV.

Pour l'enum Race, j'ai voulu faire comme si le système à l'origine du fichier CSV (ou de la base de données) limitait le nombre de caractères à 8. C'est une contrainte qu'on retrouve encore dans de nombreux programmes.

En fait, il n'y a aucune raison pour qu'un programme distant utilise les mêmes noms d'enum que mon programme chez moi, et encore moins les mêmes notations.

Pourquoi je dis ça ? Parce que les fichiers CSV sont surtout utilisés pour transférer de l'information entre deux systèmes distants. Par exemple une boutique animalière à Bordeaux envoie une liste de chiens au format CSV au système central à Paris. En outre, cela permet à des web master tiers (sans lien avec la société) de reprendre les informations facilement, avec un format qui reste lisible.

Dans un vrai programme, il est assez rare, en effet, de stocker les données dans un fichier CSV. On utilise plutôt des bases de données pour ça.
0  0 
Avatar de thierryler
Rédacteur https://www.developpez.com
Le 02/01/2013 à 14:37
Effectivement, pris comme ça, tu as raison. Toutefois ça reste un point de détail dans le programme ;-)
0  0