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
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 ---);
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).


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