petit problème d'externalisation de requete en java

petit problème d'externalisation de requete en java - Java - Programmation

Marsh Posté le 07-05-2003 à 10:41:58    

voila, je suis en train d'externaliser des requetes imbriquées dans du code java et y'en a une qui me pose un petit probème :
 

Code :
  1. StringBuffer query = new StringBuffer();
  2.             appendRoleChange(query, "radm", "usr_administrator" );
  3.             appendRoleChange(query, "rcre", "usr_creator" );
  4.             appendRoleChange(query, "rval", "usr_validator" );
  5.             appendRoleChange(query, "rpub", "usr_publisher" );
  6.             appendRoleChange(query, "rtra", "usr_translator" );
  7.             if (query.length() > 0) {
  8.                 query.insert(0, "update gko_user set " );
  9.                 query.append(" where usr_id=" ).append(user);
  10.                 if (conn.executeUpdate(query.toString()) != 1) throw new LocalizedUserException(this, "User_does_not_exist" );


 
J'ai déjà fait la classe qui externalise les select (c'était le plus simple) et ca marche comme ca :
 

Code :
  1. Map valeur=new HashMap();
  2.     Map type= new HashMap();
  3.     List list= new ArrayList();
  4.     String a="";
  5.     String b="";
  6.    
  7.     public KPreparedStatement stat;
  8.     public KDataSet set;
  9.    
  10.     public GeckoSelect(String s) throws Exception{
  11.      
  12.         StringTokenizer st = new StringTokenizer(s,"#",false);
  13.            
  14.         while(st.hasMoreElements()) {
  15.             a=st.nextToken();
  16.             b=b+a;
  17.             if(st.hasMoreElements()){
  18.                 a=st.nextToken();
  19.                 b=b+'?';
  20.                 list.add(a);
  21.                 valeur.put(a,null);
  22.             }
  23.                          
  24.         }
  25.      } 
  26.   public void executeRequete(KConnection conn)throws Exception{
  27.         set=new KDataSet();
  28.         stat = conn.createPreparedStatement();
  29.         stat.setOut(true);
  30.         stat.setSql(b);
  31.              
  32.        
  33.         for(int i=0; i<list.size(); i++){
  34.             stat.addParameter(KDataSet.DATA_INTEGER);
  35.         }
  36.         for(int i=0; i<list.size(); i++){
  37.             stat.setInteger(i,(Integer)valeur.get(list.get(i)));
  38.         }
  39.        
  40.         stat.executeQuery(set);
  41.        
  42.     }


 
 
la string passer un paramètre dans le constructeur est la requete écrite de cette facon : "select bidule from machin where truc=#TRUC#";
 
Je voudrais que ca marche à peu pres pareil pour les update mais celui que j'ai donné plus haut me pose problème donc si quelqu'un a une idée pour me mettre sur la voie ce serait cool ...
 


---------------
http://membres.lycos.fr/axelfa
Reply

Marsh Posté le 07-05-2003 à 10:41:58   

Reply

Marsh Posté le 07-05-2003 à 11:25:20    

Y'a donc personne pour m'aider ????  :cry:


---------------
http://membres.lycos.fr/axelfa
Reply

Marsh Posté le 07-05-2003 à 11:40:03    

[:denetrob]

Reply

Marsh Posté le 07-05-2003 à 12:08:53    

c'est quoi ta question? :/


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 07-05-2003 à 13:20:56    

bah en fait je sais pas trop si tu as compris ce que je devais faire déjà. Je vais essayé de m'expliquer (j'ai toujours un peu de mal à m'expliquer  :sarcastic: ) :
 
Alors en fait y'a plein de requete imbriquées dans le code Java directement et moi il faut que je fasse plein de classe Java qui gère toutes ces requetes pour qu'elles ne soient plus n'importe ou dans le code.
Donc en fait ma classe GeckoSelect gère les requete select elle prend en paramètre la requete sous forme de String la modifie un peu puis l'execute...
Il faut que je fasse pareil pour les update, insert, etc.. Mais la requete update que j'ai donné me pose quelques problèmes car elle utilise d'autres fonction qu'un executeUpdtate ou executeQuery et donc du coup je ne peux pas gérer ca de la meme facon que j'ai gérer les select.
 
Le problème est donc que je ne sais pas trop comment faire pour les update ...
Je ne sais pas si c'est vraiment plus clair mais vu que ce n'est pas déjà tres clair dans ma tete c'est pas tres facile à expliquer.
 
Si quelqu'un a compris quelque chose à mon explication et qu'il a une idée ben je l'écoute ...


---------------
http://membres.lycos.fr/axelfa
Reply

Marsh Posté le 07-05-2003 à 13:24:21    

et si tu ajoutes des parametres a tes fonctions selon tes besoins? :??:

Reply

Marsh Posté le 07-05-2003 à 13:27:51    

polo021 a écrit :

et si tu ajoutes des parametres a tes fonctions selon tes besoins? :??:  


 
je ne comprends pas trop ce que tu essaies de me dire là ?²


Message édité par tchoupinette le 07-05-2003 à 13:28:05

---------------
http://membres.lycos.fr/axelfa
Reply

Marsh Posté le 07-05-2003 à 13:57:04    

Citation :

Mais la requete update que j'ai donné me pose quelques problèmes car elle utilise d'autres fonction qu'un executeUpdtate ou executeQuery et donc du coup je ne peux pas gérer ca de la meme facon que j'ai gérer les select.


 
ben si j'ai bien compris, tu creees une classe pour les insert, une pour les select, une pour les update,....
Alors si dans ta classe tu creees des fonctions qui prennent en parametres les differeents parametres (en plus de la string pour la requete) dont tu as besoin et que tu traites et executes ta requete dans cette fonction, ca n'irait pas?
 
Les parametres supplementaires dont je parle correspondent aux infos que les autres fonctions ont besoin
 
 
 
Mais bon je suis pas trop sur d'avoir compris ce que tu demandes...[:spamafote]

Reply

Marsh Posté le 07-05-2003 à 13:58:14    

oh bah je crois que je vais passer à autre chose et attendre que mon maitre de stage revienne de ses vacances pour lui demander comment faire ...


---------------
http://membres.lycos.fr/axelfa
Reply

Marsh Posté le 07-05-2003 à 14:05:00    

moi j'ai jamais compris pkoi tu te servais pas betement des PreparedStatement. Ca correspond exactement à tes besoins ...
 
c'est quoi l'intérêt de coder les requête avec des #truc# dedans à la place des '?' ?
 
A part le fait que tu peux passer les valeurs de ta requêtes de façon non-ordonné ...
 
et c'est quoi le problème des update par rapprt au select ?
 
si tu as déjà fait la mécanique pour les select, les update & Co c'est pareil, nan ? T'as juste une autre méthode à appeler pour executer la requête ...
 
bref, comme dark : c'est quoi ta question  :??:


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 07-05-2003 à 14:05:00   

Reply

Marsh Posté le 07-05-2003 à 14:06:19    

cf la requete que j'ai donné au dessus ...


---------------
http://membres.lycos.fr/axelfa
Reply

Marsh Posté le 07-05-2003 à 14:08:45    

Tchoupinette a écrit :

cf la requete que j'ai donné au dessus ...


 :??:  :??:  :??:  
 
Soit plus claire, parce que là on capte rien !


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 07-05-2003 à 14:09:41    

benou a écrit :


 :??:  :??:  :??:  
 
Soit plus claire, parce que là on capte rien !


 
j'abandonne de toute manière, je verrai ca plus tard, j'ai pas envi de me prendre la tete avec ca pour le moment ...


---------------
http://membres.lycos.fr/axelfa
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed