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

Spring Java Discussion :

Supporter plusieurs bases de données


Sujet :

Spring Java

  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 549
    Par défaut Supporter plusieurs bases de données
    bonjour

    quelle est la meilleure façon de gérer plusieurs bases de données (une seule à la fois)?
    genre je veux que l'application supporte oracle et aussi mysql.... le code sql peut alors être un peu différent...

    je précise sans utiliser de orm

    je crois qu'il faudrait utiliser une abstract factory, ensuite une factory par bd et ensuite chacune de ses factory aurait son propre dao (il implémenterait tous la même interface)

    je sais pas comment mettre la colle entre tous ses morceaux et faire en sorte qu'il puisse connaitre la bd qui doit être utilisé

    merci

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6
    Par défaut
    En fait, le mieux c'est d'avoir du code SQL le plus standard possible, et de pouvoir ainsi le partager entre les différentes bases de données. Je travaille sur une grosse application, et quasiment 100% des requêtes SQL fonctionnent sur Oracle, PostreSQL, MySQL et SQL Server. La plupart des requêtes qui sont spécifiques à une base de données ont été écrites pour des raisons de performance, et non pas de syntaxe non valide.

    Ensuite, il faut séparer le code qui accède aux bases de données du reste du code, en faisant des DAOs par exemple. Les DAOs exécutent des requêtes SQL et convertissent les ResultSet en objets métier (tout au moins en objets de plus haut niveau).

    Ces DAOs doivent être des composants Spring, que tu peux ensuite surcharger pour des bases de données spécifiques. Il existe différentes stratégies pour cela. Par exemple utiliser des BeanFactory, qui retournent des DAO en fonction du type de la base de données, ou définir le nom de la classe d'un bean à l'aide d'une propriété (et utiliser un PropertyPlaceHolderConfigurer).

    Mais franchement, le mieux c'est d'avoir le code le plus proche entre toutes les bases. C'est plus long à trouver les bonnes requêtes et le bon MCD, mais ça fait beaucoup moins de boulot en maintenance.

Discussions similaires

  1. [Data] Supporter plusieurs bases de données
    Par lequebecois79 dans le forum Spring
    Réponses: 4
    Dernier message: 13/01/2012, 22h20
  2. Réponses: 3
    Dernier message: 08/12/2005, 19h19
  3. Requête sur plusieurs bases de données
    Par Oluha dans le forum ASP
    Réponses: 8
    Dernier message: 14/10/2005, 14h57
  4. connexion a plusieurs bases de données oracle
    Par tarik75 dans le forum JDBC
    Réponses: 1
    Dernier message: 06/07/2005, 13h33
  5. triggers sur plusieurs bases de données
    Par Shabata dans le forum Langage SQL
    Réponses: 2
    Dernier message: 04/05/2004, 10h02

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