Bonjour,
Je me pose un problème à la fois technique et d'architecture.
Dans un projet JBC/Struts, dans une action puis via un Bean AccessBean, je récupère
1. une liste d'objets "Produit1" dans une base BD1.
L'objet Produit1 contient un codeProduit1, un nomProduit1.
2. A partir de cette liste je veux récupérer, dans une autre base BD2 des infos par un
Ces deux requêtes sont bien exécutées l'une appres l'autre, entre les 2 je reviens dans l'action pour changer de DataSource (archi de l'application oblige).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 select prix_produit2, poids_produit2 from Produit2 where codeProduit2 in ( --- la liste de codeProduit1 ---);
Je veux afficher les résultats dans un tableau du type :
codeProduit1 nomProduit1 prix_produit2 poids_produit2
------------------------------------------------------------------------
J'ai plusieurs problèmes :
- la liste de Produit1 est ordonnée selon un critère particulier (qui n'existe pas dans Produit2) donc au moment du traitement dans ma jsp, mes 2 listes sont chacune affichées dans leur propre ordre .... Et les lignes sont incohérentes..
Par exemple si en base j'ai ces 2 produits :
codeProduit1= 120
nomProduit1= table_basse
codeProduit2= 120
prix_produit2= 50
poids_produit2= 19
codeProduit1= 260
nomProduit1= crayon
codeProduit2= 260
prix_produit2= 2,5
poids_produit2= 0,03
A l'affichage j'obtiens (pas forcément, mais sur une liste de 50 produits c'est aléatoire) :
codeProduit1 nomProduit1 prix_produit2 poids_produit2
------------------------------------------------------------------------
120 table_basse 2,5 0,03
260 crayon 50 19
Vous allez me suggérer de classer mes listes par codeProduit1 et codeProduit2, mais le deuxième probleme arrive !!
- en effet, je n'ai pas forcement de correspondance dans la table Produit2 !! Par exemple la table_basse de code 120 peut ne pas exister dans la table Produit2..
J'ai donc pensé faire ma deuxième requete au fur et a mesure de la première requete (dans le parcours des résultats de la premiere requete).
Dans ce cas, j'ai plusieurs questions :
- Comment ca se passe au niveau des performances ?... Je vais faire autant de requêtes sur la BD2 que j'ai de codeProduit1, qu'en pensez vous ?
- Etant donnée mon archi, comment changer de DataSource comme ca, dans un While .... ?
Merci d'avance à ceux qui pourront m'aider.
Flo
Partager