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 :

Idées pour modifier de manière dynamique les champs d'une base MySQL à partir de Java


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Développeur Java
    Inscrit en
    Juin 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juin 2006
    Messages : 40
    Par défaut Idées pour modifier de manière dynamique les champs d'une base MySQL à partir de Java
    Bonjour à tous.

    Je suis en pleine programmation d'un programme scientifique écrit en Java SE, relié à une base MySQL via l'utilisation d'Hibernate pour la création d'objets persistants.

    Ma question est assez générique : tout en sachant qu'il est tout à fait possible de rajouter des champs dans les tables de ma base via une instruction SQL, auriez-vous des idées pour le faire à partir de mon code Java?
    En quelque sorte, puis-je rendre persistant de manière dynamique ces nouveaux champs de la base renseignés par l'utilisateur au travers de l'interface graphique de mon programme java?

    Je ne recherche pas de codes mais des idées pour que mon interface graphique java réagisse de manière dynamique avec la base de données.

    Merci d'avance pour toutes vos suggestions et bonne journée.

  2. #2
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    C'est bien le but d'Hibernate...

    Tu peut ajouter, supprimmer et modifier des données de la base et traiter le tout sous forme d'objets. C'est bien ça que tu veux ?

  3. #3
    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
    Ok j'ai bien compris ton but, mais si je me souviens bien tu ne peux pas ajouter de champs obligatoire sans valeur par défaut à une table deja crée avec des données dedans. Donc il faut faire attention à cela, à moins que tu ne reconstruise ta base via hibernate à chaque changement,

  4. #4
    Membre expérimenté Avatar de a.snaps
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 209
    Par défaut
    ... ou tu veux modifier le schéma dynamiquement?
    Si tel est le cas... Tu n'es pas sorti d'affaire!
    Conceptuellement, je pense que cela traduit une imperfection de design. Mais si je me trompe alors il faudra pour chaque modification dans le schema non seulement reloader la session factory après avoir modifier les mappings mais par extension toutes tes entités seront elle-même des classes dynamiques modifier par réflection pour qu'ils aient également les "nouveaux" champs!
    C'est un casse-tête rigolot, mais je ne suis pas sûr qu'il soit utils, si? Ou je complique inutilement ta question et wichtounet la bien comprise lui!
    Alex

  5. #5
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Il y a peut-être un autre aspect de la question à prendre en compte.
    OK, en sql natif, on peut modifier la structure d'une table, ajouter, supprimer etc (alter table, drop table...), mais comment faire, après pour qu'hibernate s'adapte ? Tu veux modifier les fichiers de mapping, arrêter/redémarrer pour qu'hibernate soit à niveau ?
    Je ne pense pas que ce soit possible (hors usine à gaz)...

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre expérimenté Avatar de a.snaps
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 209
    Par défaut
    Usine à gas clairement!
    De plus, si c'est un environnement multi-threader, c'est même très ennuyant! Et le cache level 2 dans tout ça? Et les "longues" transaction? Et...?
    Mais tu es bien certain que c'est vraiment nécessaire? A nouveau, je pense sincèrement qu'il a plus une erreur de conception?! Je ne conçois pas que la business logic (logique métier?!) modifie le schéma de la base de données!
    Alex

  7. #7
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par a.snaps
    Usine à gas clairement!
    De plus, si c'est un environnement multi-threader, c'est même très ennuyant! Et le cache level 2 dans tout ça? Et les "longues" transaction? Et...?
    Mais tu es bien certain que c'est vraiment nécessaire? A nouveau, je pense sincèrement qu'il a plus une erreur de conception?! Je ne conçois pas que la business logic (logique métier?!) modifie le schéma de la base de données!
    Alex
    Entièrement d'accord ! Conceptuellement, je tilt...
    Le seul outil (pertinant) que je vois succeptible de faire ce genre de chose serait un gestionnaire de base de données. Et là, on n'utilise pas Hibernate, mais JDBC et les meta-data
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre averti
    Profil pro
    Développeur Java
    Inscrit en
    Juin 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juin 2006
    Messages : 40
    Par défaut
    Citation Envoyé par a.snaps
    Usine à gas clairement!
    De plus, si c'est un environnement multi-threader, c'est même très ennuyant! Et le cache level 2 dans tout ça? Et les "longues" transaction? Et...?
    Mais tu es bien certain que c'est vraiment nécessaire? A nouveau, je pense sincèrement qu'il a plus une erreur de conception?! Je ne conçois pas que la business logic (logique métier?!) modifie le schéma de la base de données!
    Alex


    Malheuresement, les utilisateurs veulent cette possibilité.
    Ce sont des ingénieurs aéronautiques qui modifient leurs modules de calcul très souvent en y rajoutant plein de variables.
    Il est vrai que le pb serait résolu en livrant un update du programme à chaque modification lourde de la base.
    Mais ils veulent éviter ça...

    Modifier la base, pas de pb.
    Mais la mapper et créer des objets persistants de manière dynamique...chaud.

    Le seul moyen peut-être est de revoir la conception de la base, et au lieu de penser en colonnes (champs), tou faire pour que cela se traduise par des lignes(valeurs de champs).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. modifie le contenu d'un champ dans une base
    Par oscar.cesar dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 22/10/2007, 22h58
  2. Réponses: 3
    Dernier message: 10/08/2006, 17h43
  3. Réponses: 4
    Dernier message: 07/08/2006, 16h19
  4. ADO et les guillemet dans les champs d'une base Texte
    Par jnc dans le forum Bases de données
    Réponses: 3
    Dernier message: 27/10/2005, 08h41
  5. Réponses: 3
    Dernier message: 25/07/2005, 18h41

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