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

JDBC Java Discussion :

[Débutant] Aide SQL


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Kevin12
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 122
    Par défaut [Débutant] Aide SQL
    J'ai déjà quelques notions, de débutant en JDBC et je souhaiterais un coup de main pour les mettre en pratique.

    J'ai une table T_Vehicule(idVehicule, numVehicule, TypeVehicule)
    Je voudrais un exemple de code de classe métié qui me permettrait d'ajouter de modifier ou de supprimer un véhicule, et un autre pour l'affichage de l'ensemble des véhicules.

    OBDC dns : Vehicule

  2. #2
    Membre Expert
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Par défaut
    Ben voyons 100 balles et un mars aussi.
    Bon je me calme, ca sent l'exercice de cours à faire à la maison .
    Ici tu ne recevra pas de code tout fait pour avoirune bonne note. Et même si ce n'est pas un exercice de cours cela reste valide.

    Par contre c'est avec plaisir que nous t'aiderons a mettre les briques les unes sur les autres.
    Fais un ou deux tutorials sur jdbc http://java.developpez.com/cours/#jdbc
    Fais un diagramme de classes, lances toi et après pour toutes les questions revient nous voir, c'est avec plaisir que nous y répondrons.

    Voici de quoi démarrer:

    Couche graphique/présentation
    |
    couche métier
    |
    Couche d'accès aux données. (JDBC)
    |
    Base de données

    A partir de là tu dois pouvoir tirer une petit diagramme de classe, penses bien à utiliser des interfaces entre les couches pour que ce soit plus propre.
    Une fois que tu as la trame, implémente la partie graphique/présentation avec une classe métier bidon. Fais de même avec la classe métier et la partie accès aux données.
    Après a la fin il faudra juste encore faire la partie JDBC.
    1 heure top départ, je chronomètre

    Facile non?

  3. #3
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    Ben c'est vague comme question, et de plus on est pas là pour écrire du code ... [EDIT] Ok on t'a déjà fais la morale

    en gros tu as une classe Vehicule ? Qui mappe ta table (je veux dire les attributs de ta classes sont calqués sur la structure de ta table)

    pour l'ajout -> un simple INSERT
    pour la modif -> modification de l'objet et un UPDATE de toutes les valeurs (WHERE ta clé primaire = id dans ta classe)
    ....


    enfin bref rien de bien compliqué.

    Propose nous plutot ta solution et on te dira ce qui ne va pas.

    Au fait as tu pensé à des choses comme Hibernate ou des EJB qui te permettent de t'abstraire du code SQL.

    Il faut que tu pense également à la synchronisation entre tes objets Java et les données dans la table.

    Tu peux par exemple (mais c'est grossier), au lancement, charger tout tes objets Vehicule à partir d'un select. Puis faire ce que tu veux sur tes objets et à la fin des opérations écraser ta table. enfin c'est bourrin mais c'est pour te montrer qu'il faut penser à la meilleure manière (suivant tes besoins) de synchroniser tes données.

    Bon courage

  4. #4
    Membre confirmé Avatar de Kevin12
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 122
    Par défaut
    Merci à vous tous, je m'excuse de m'être mal exprimé.
    J'ai déjà fait pas mal d'applications dans d'autres lanages, Pascal, C, VB. Je m'y connais en base de données.
    Je suis débutant avec les classes, je n'ai que des notions scolaires dessus, jamais mise en pratique. Ce que je voulais c'est de découvrir des astuces pour mettre en place ma première application web JAVA.

    Voici ce que j'avais commencé.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    import java.sql.*;
     
    public class Vehicule {
        private int idVehicule;
        private String numVehicule;
        private String Immatriculation;
        private String Designation;
     
        public Vehicule() throws Exception {
        //  Code pour insertion, modifiacation, suppression, ou affichage d'une requête
    	    }
     
        public int getIdVehicule() {
    	return this.idVehicule;
        }
     
        public String getNumVehicule() {
    	return this.numVehicule;
        }
     
        public String getImmatriculation() {
    	return this.Immatriculation;
        }
     
        public String getDesignation() {
    	return this.Designation;
        }
     
        public String toString() {
    	return this.idVehicule + " - " +
                   this.numVehicule + ", de marque " +
    	       this.Immatriculation + " et de prix " + this.Designation;
        }
    }
    Je souhaiterais avoir un module (sous forme de classe) pour la connexion que je pourrais utiliser dans toutes les autres classes d'accès aux données sans avoir à le réecrire.

    Citation Envoyé par in
    Tu peux par exemple (mais c'est grossier), au lancement, charger tout tes objets Vehicule à partir d'un select. Puis faire ce que tu veux sur tes objets et à la fin des opérations écraser ta table.
    Ca a l'air intéressent !

    Je m'excuse une fois encore.

  5. #5
    Membre Expert Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Par défaut
    Ce que tu as commencé est à peu près correct.

    IL ne manque plus qu'a rajouter les methodes SETXXXXX pour que ta classe Vehicule puisse avoir des valeurs autre que nul,
    Sauf si tu les passes dans le constructeur et que tu ne veux plus les modifier ensuite.


    Maintenant tout depend de ce que tu veux faire de tes véhicules, si tu veux justes les affichers, ou pouvoir les modifier, ou supprimer?
    Tu veux faire une interface graphique? Une appli web?

  6. #6
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    Juste à propos du commentaire que tu as mis dans le constructeur ... tu comptes vraiment mettre tout ce code dans le constructeur

    A la limite, le constructeur pourrait, à chaque instancaition d'un objet Vehicule insérer un nouvel enregistrement dans la base. Mais bon, je ne pense pas que ce soit la meilleure des solutions.

    Je suppose que tu as une classe "Garage" (ou autre) qui gère une collection de Vehicules.

    c'est à priori dans cette classe que tu peux faire un chargement/sauvegarde de tous tes Vehicules. Une méthode "charger" pourrait (par exemple, mais si t'as 1000 vehicules c'est très moyen) faire un select de tes véhicules et réaliser les instanciations (new Vehicule()) de tes objets.

    Réciproquement, une méthode "sauver" pourrait mettre à jour les Vehicules dans ta base. En faisant (par exemple) un delete des vehicules existants et un insert de tous les vehicules de ton garage.

    Bref. Comment tu veux gérer la synchro. A chaque action sur un objet Java tu veux modifier la base, ou alors tu souhaites juste manipuler tes objets java et sauver/charger les données au lancement/fermeture du programme ?


    [EDIT]

    Citation Envoyé par Kevin12
    Ca a l'air intéressent !


    Citation Envoyé par Sironimo
    Mais extrêment glouton, je te le déconseille !!
    Oui moi aussi

    Citation Envoyé par Sironimo
    Sélectionne plutôt les enregistrements qui t'intéressent et évite d'écraser la table à chaque fin d'utilisation de l'application.
    Par contre ça aussi ça peut etre lourd. Si pour chaque enregistrement il faut que tu regardes si il existe ou non dans la base pour choisir entre un update et un insert ... bref, il faut vraiment que tu définisses comment tu souhaite t'y prendre.

  7. #7
    Membre émérite
    Avatar de sironimo
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2004
    Messages : 669
    Par défaut
    Citation Envoyé par in
    Par contre ça aussi ça peut etre lourd. Si pour chaque enregistrement il faut que tu regardes si il existe ou non dans la base pour choisir entre un update et un insert ... bref, il faut vraiment que tu définisses comment tu souhaite t'y prendre.
    tout à fait d'accord, lol disons que j'ai choisi un mauvais exemple pour justifier du fait que l'autre méthode était gloutonne.

  8. #8
    Membre émérite
    Avatar de sironimo
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2004
    Messages : 669
    Par défaut
    Citation Envoyé par Kevin12
    Je souhaiterais avoir un module (sous forme de classe) pour la connexion que je pourrais utiliser dans toutes les autres classes d'accès aux données sans avoir à le réecrire.
    Rien de plus simple. Tu crées une classe par exemple ConnexionBD.java et dedans tu réalises une ou des méthodes de connexion à la base de données.

    Il te suffit après dans chaque classe d'appeler la méthode de ce fichier. Tu peux le mettre dans le même package de ton projet, soit dans un package à part, à toi de voir mais pour ton exercice, créer un nouveau package ne servirait à rien et alourdirait ton application.

    Citation Envoyé par Kevin12
    Ca a l'air intéressent !
    Mais extrêment glouton, je te le déconseille !!
    Sélectionne plutôt les enregistrements qui t'intéressent et évite d'écraser la table à chaque fin d'utilisation de l'application.

Discussions similaires

  1. Aide débutant en SQL server
    Par nizoux dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 23/04/2015, 23h38
  2. Réponses: 4
    Dernier message: 13/01/2010, 14h25
  3. Débutant: Aide sur MS SQL Server
    Par mboubidi dans le forum Administration
    Réponses: 4
    Dernier message: 31/07/2008, 16h36
  4. débutant cherche aide : sql
    Par dz_robotix dans le forum Langage SQL
    Réponses: 3
    Dernier message: 28/09/2007, 13h32
  5. [Débutant] Aide utilisation fonctions :(
    Par trakiss dans le forum Débuter
    Réponses: 10
    Dernier message: 27/08/2004, 15h59

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