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

Persistance des données Java Discussion :

Accès aux données depuis une application web


Sujet :

Persistance des données Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 318
    Par défaut Accès aux données depuis une application web
    Je développe une application, où je me connecte à une base de données ( ça peut être Oracle, ou Teradata ) depuis mon application web , puis je cherche comment faire pour accéder aux tables dans la base.

    Je cherche aussi comment aussi comment faire pour comparer les tables source et cibles (qui sont dans la même BD) ... ( par exemple je choisis la tables personnes_sources avec la tables personne_cible ), puis j'accède aux champs respectives de ces tables pour les comparer ( nom de la table personnes_sources avec Name de la tables personne_cible ), et à la fin, je dois générer le taux des tests qui ont passé en succès et les tests qui ont échoués

    exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Table Source                                                            Table cible
     
    personnes                                                                pers_Tab_Logica
     
    Nom  Prenom                                                         LastName    FirstName
     
    yas     el                                                                   yohan        el
    mokh  ami                                                                   jiji       am
    donc après je dois générer un rapport qui contient 75 % de taux d'échecs et 25 % de taux de réussite ( 1/4 réussis )


    PS:

    J'ai pensé à utiliser les EJB, le problème est que les EJB ne manipule pas les données directement en SQL mais sous forme d'objets particuliers qu'on appelle des "classes entités" (ce qui est une bonne chose, mais malheureusement pas dans mon cas), si par exemple j'ai 80 DB sous oracle je dois créer 80 source de données, et si dans chaque DB existe 10 tables, je dois créer 800 classes entités ... c'est lourd et surtout c'est pas dynamique.

    As-tu une idée simple pour que je puisse accéder aux données depuis mon application, et je puisse faire mes comparaisons des données source et cible ....


    Merci

  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
    je dois créer 80 source de données, et si dans chaque DB existe 10 tables, je dois créer 800 classes entités ... c'est lourd et surtout c'est pas dynamique.
    Pas tout à fait d'accord. Si tu dois comparer les données des tables, c'est qu'à la base ces tables ont des propriétés communes, en d'autres termes 2 tables structurellement identiques pourraient se partager la même entité, ce qui réduirait considérablement le nombre d'entités à mapper.Et du coup je ne comprends pas non plus pourquoi tu trouves que ce n'est pas dynamique. Faire du sql Natif surtout pour l'objectif qui est de comparer les enregistrements je pense que sur le long terme tu perdras du temps de dev, puisqu'une comparaison de 2 objets peut se faire avec moins de dev avec très peu de dev qu'une comparaison champ par champ si tu fais du natif, après ça reste un avis personnel et discutable.Également rester en JPA(ou hibernate) ça me parait plus facilement maintenable, lisible, évolutive et structurée. Même si tu me diras que côté performance du sql Natif serait plus rapide, mais après faut voir aussi du côté volumétrie que t'auras à traiter.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 318
    Par défaut
    Salut DevServlet, merci pour ta réponse, est-ce que tu as une piste à me proposer pour commencer cette partie, franchement je sais pas encore comment je vais faire, si c'est possible de m'aider avec un tuto.

  4. #4
    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,
    D'entrée, je préfère te dire que ça va être un peu lourd à gérer, ce quel que soit le mode d'accès aux données (JPA ou JBDC classique) car qui dit 80 source de données dit 80 connexions aux bases différentes. A moins que ce soit des bases permettant de définir des synonymes (mécanisme d'accès à une table d'une base depuis une autre) Ce qui permettrait de ne gérer qu'une seule connexion à une base point d'entrée. Mais sinon si tu décides d'adopter JPA, il te faudra autant de contextes de persistances que de sources de données.Ce lien ici te permet de le faire. Et donc via les entityManager de chaque source de données tu pourras manipuler les entités pour effectuer des différentes opérations de comparaisons.Comme je t'ai proposé plus haut, lors de ton mapping Objet/relationnel il faudra bien analyser les tables similaires des différentes bases pour mutualiser le maximum possible les entités à créer.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 318
    Par défaut
    Je vais utiliser finalement JDBC, le problème est que je connais pas combien de tables j'ai dans mes bases, et je veux voir les tables qui existe dans la base de donnée ( que l'utilisateur choisi en rentrant les paramètres de connections ... host, port, user, BD, password )

    Est-ce que tu as une idée de mon shéma de conception ? si je vais utiliser des Designes Patterns ? Est-ce que tu as un exemple dans ce sens ?

    Merci

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 318
    Par défaut
    Les étapes de mon appli:

    1 - connection à la base ( en saisissant les paramètres )

    2- choisir les tables que je vais comparer, par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Tables sources             Tables cibles
    personness                     NMO_Pers
    Voitures                          car 
    ....
    3- comparer les champs de la table source avec les champs de la table cible
    3- créer un rapport pour savoir les taux d'échec et de succès

  7. #7
    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
    Citation Envoyé par maserati Voir le message
    Je vais utiliser finalement JDBC, le problème est que je connais pas combien de tables j'ai dans mes bases, et je veux voir les tables qui existe dans la base de donnée ( que l'utilisateur choisi en rentrant les paramètres de connections ... host, port, user, BD, password )

    Est-ce que tu as une idée de mon shéma de conception ? si je vais utiliser des Designes Patterns ? Est-ce que tu as un exemple dans ce sens ?

    Merci
    Donc si je récapitule, C'est à l'utilisateur de saisir les données de connexions à la datasource source et cible, et une fois que c'est fait, j'imagine que c'est lui aussi qui selectionne les tables source et cible et ton programme génère les statistiques de comparaisons c'est bien ça? et ben dans ce cas une connexion à chaud décrite ainsi, le jdbc brut me parait plus adapté dans ce cas. A priori je ne vois pas quel patron de conception pourra t'aider à mieux structurer ton process.Un MVC classique serait déjà pas mal

Discussions similaires

  1. Réponses: 8
    Dernier message: 15/10/2015, 16h44
  2. Réponses: 4
    Dernier message: 15/02/2015, 11h03
  3. Problème d'accès au matériel embarqué depuis une application web
    Par j_esti dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 17/06/2014, 00h15
  4. Réponses: 4
    Dernier message: 17/02/2011, 22h41
  5. [Interface]Executer une appli c++ depuis une application web
    Par mguinot dans le forum Développement Web en Java
    Réponses: 4
    Dernier message: 14/11/2005, 15h30

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