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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Web en Java Discussion :

Java et MySQL


Sujet :

Développement Web en Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 31
    Par défaut Java et MySQL
    Bonjour,

    Je suis en train d'apprendre JDBC et Hibernate et j'ai créé une base de données avec deux tables, Etudiant et Departement.

    Dans ma table Etudiant il y a une clé étrangère "département" qui représente la clé primaire de la table Département : id_dept de type varchar.

    Je souhaiterais savoir comment représenter cette clé étrangère dans mes classes Java ? Est-ce que dans la classe Etudiant, je crée un attribut Departement (classe Departement) ou simplement un attribut String qui représente le codeDept ?

    En fait, j'aimerais savoir quelle est la meilleure façon de faire afin de faciliter l’implémentation de mes méthodes par exemple, quand je souhaite supprimer un département qui contient des étudiants ? Bien sûr, dans MySQL, j'ai mis ondelete=cascade.

    Egalement, pour la liste des étudiants, comment l'initialiser afin d'éviter le NullPointerException ? Est-ce dans le constructeur ou juste comme attribut ? Si c'est juste un attribut comment l'initialiser correctement ?

    Merci d'avance pour vos conseils et retours d’expériences.

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Bonjour,
    Ta question relève simplement de la méconnaissance du framework Java gérant le mapping entre ton modèle de persistance Java et la base de donnée, le mieux serait donc parcourir ce tutoriel jpa, et revenir vers nous si tu as des incompréhensions.

  3. #3
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2011
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 196
    Par défaut
    Bonjour,

    D'après ce que je comprends, dans ton application un étudiant appartient à un département et un département regroupe plusieurs étudiants.

    Tu as bien une clé étrangère dans ta table Etudiant faisant référence à la clé primaire de la table Département.

    Côté Java avec JPA on pourra avoir une relation bi-directionnelle (OneToMany et ManyToOne).

    Cela sera matérialisé dans ta classe Etudiant avec une relation ManyToOne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "ID_DEPARTEMENT")
    private Departement departement;
    C'est l'entité maître, on fait référence à la clé étrangère grâce à l'annotation @JoinColumn

    Au niveau de ta classe Departement on aura une relation OneToMany :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    @OneToMany(fetch = FetchType.LAZY, mappedBy = "departement")
    private List<Etudiant> etudiants;
    C'est l'entité esclave, ici l'attribut mappedBy doit correspondre au champ qui est présent dans l'entité maître (ici cela correspond au champ departement dans la classe Etudiant)

  4. #4
    Membre confirmé
    Homme Profil pro
    Administrateur de bases de données, développeur PHP & J2E
    Inscrit en
    Décembre 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Administrateur de bases de données, développeur PHP & J2E
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2011
    Messages : 60
    Par défaut
    dit tu utilise quelle IDE car ces dernier offrent des facilité de développent quand on est débutant mais après faut comprendre. en tant normal, avec un bon IDE tu peut simplement créer tes tables dans ton SGBD et générer tes entities (classes java correspondant). Par la suite il te suffit de parcourrir le code pour le comprendre et peut être dans l'avenire écrire ces codes toi même.
    Personnellement je génère les 80% du code sources de mes entities.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    174
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 174
    Par défaut
    Si tu as des soucis tu pourras me contacter par MP si tu veux. J'ai bossé sur un projet en Java JEE avec Hibernate et une BD SQL Server (cela reste proche de MySQL il suffit de bien configurer le tout^^). La réponse de oliv37 t'apporte déjà des éléments de réponse quant aux annotations à utiliser.

Discussions similaires

  1. Faire une bd avec java et MySQL.
    Par argon dans le forum Outils
    Réponses: 4
    Dernier message: 04/12/2006, 20h05
  2. java et MySQL
    Par sricard dans le forum Hibernate
    Réponses: 2
    Dernier message: 07/08/2006, 11h41
  3. Générer des données en C ou java pour MySQL?
    Par stef06 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 11/07/2006, 22h41
  4. Connexion java avec mysql
    Par hlimaiem dans le forum Installation
    Réponses: 2
    Dernier message: 15/06/2006, 17h37
  5. [debutant] Java et MySQL
    Par micknic dans le forum JDBC
    Réponses: 6
    Dernier message: 16/04/2005, 14h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo