Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3250 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2  3
Auteur Sujet :

[Java] Exception lancée alors que ça devrais passer !

n°160824
El_gringo
Posté le 17-06-2002 à 14:44:06  profilanswer
 

Reprise du message précédent :
ça y est, ça marche.
Vous allez pas me croire tellement c bisard. Moi même g vachement du mal à y croire, ms maintenant, c sur. Je vous jure, je suis pas trop du genre à affirmer qqch, sans avoir vérifié 50 fois.
Quand mon ResultSet s'appel "rs" , ça merde.
Si je l'appel autrement ("res" ), que je recompile, et que je relance, ça marche !!!
Qqn y comprend qqch !??

mood
Publicité
Posté le 17-06-2002 à 14:44:06  profilanswer
 

n°160829
darklord
You're welcome
Posté le 17-06-2002 à 14:46:12  profilanswer
 

el_gringo a écrit a écrit :

ça y est, ça marche.
Vous allez pas me croire tellement c bisard. Moi même g vachement du mal à y croire, ms maintenant, c sur. Je vous jure, je suis pas trop du genre à affirmer qqch, sans avoir vérifié 50 fois.
Quand mon ResultSet s'appel "rs" , ça merde.
Si je l'appel autrement ("res" ), que je recompile, et que je relance, ça marche !!!
Qqn y comprend qqch !??  




 
si tu nous montres le code de ta classe on va vite comprendre oui  :ange:  
 
 :sarcastic:  
 
 
 [:rofl]


---------------
Just because you feel good does not make you right
n°160844
gfive
Posté le 17-06-2002 à 14:53:39  profilanswer
 

Ouais, ouais, moi, je veux voir aussi, juste avant que ça passe dans le topic "vos pires erreurs de programmation" :D:D

n°160861
darklord
You're welcome
Posté le 17-06-2002 à 14:59:40  profilanswer
 

exactement :)


---------------
Just because you feel good does not make you right
n°160880
El_gringo
Posté le 17-06-2002 à 15:11:03  profilanswer
 

DarkLord a écrit a écrit :

exactement :)  




 
...Je t'envois mon Utilisateur.java, ok ?
c'est bisard en fait. Il me fait pas la même erreur tout le temps. Des fois il me fait un "No Data Found".
Par contre, je maintient que g plus de pb quand je nomme mon ResultSet res
tu veux jetter un oeil Dark ? Je t'envois mon Utilisateur.java ?(ouais, y a surement une grosse connerie qq part, ms franchement, je vois pas !)

n°160883
El_gringo
Posté le 17-06-2002 à 15:12:44  profilanswer
 

bah allez, j'essaye de le copie ds le forum, à la brute ! ça sera + simple :

Code :
  1. /*
  2. * Utilisateur.java
  3. *
  4. * Created on 10 juin 2002, 17:12
  5. */
  6. package com.damaris.database;
  7. import java.beans.*;
  8. import java.sql.*;
  9. import com.damaris.ldsweb.*;
  10. /**
  11. * Cette classe stocke les données relatives à un utilisateur.
  12. * Elle permet également de récupérer un utilisateur
  13. * @author mc
  14. */
  15. public class Utilisateur extends Object implements java.io.Serializable {
  16.    
  17.     // Nom de la table
  18.     private static final String TABLE_USERS          = "UTILISATEURS";
  19.    
  20.     // Nom des colones
  21.     private static final String ROW_UTIL       = "UTIL";
  22.     private static final String ROW_PASSWORD   = "PASSWORD";
  23.     private static final String ROW_NOMUTIL    = "NOMUTIL";
  24.     private static final String ROW_CPT        = "CPT";
  25.     private static final String ROW_CONFIG     = "CONFIG";
  26.    
  27.     // Nom des propriétés
  28.     private static final String PROP_SAMPLE_PROPERTY = "SampleProperty";
  29.     private static final String PROP_LOGIN           = "Login";
  30.     private static final String PROP_PASSWORD        = "Password";
  31.     private static final String PROP_NAME            = "Name";
  32.    
  33.     private String sampleProperty;
  34.    
  35.     private PropertyChangeSupport propertySupport;
  36.    
  37.     private String login;
  38.     private String password;
  39.     private String name;
  40.     private boolean isPwdCrypted;
  41.     private boolean isManager;
  42.     private boolean isLoaded;
  43.    
  44.     /** Creates new Utilisateur
  45.      */
  46.     public Utilisateur() {
  47.         init();
  48.     }
  49.    
  50.     /** Creates new Utilisateur. Initialise ses membre <CODE>login</CODE> et <CODE>password</CODE>.
  51.      * @param login Valeur initiale du login.
  52.      * @param password Valeur initiale du mot de passe
  53.      */   
  54.     public Utilisateur(String login, String password) {
  55.         init();
  56.         this.setLogin (login);
  57.         this.setPassword (password);
  58.     }
  59.    
  60.     private void init () {
  61.         this.propertySupport = new PropertyChangeSupport( this );
  62.         this.isPwdCrypted = false;
  63.         this.isManager    = false;
  64.         this.isLoaded     = false;
  65.         this.login      = "";
  66.         this.password   = "";
  67.         this.name       = "";
  68.     }
  69.    
  70.     public String getSampleProperty() {
  71.         return this.sampleProperty;
  72.     }
  73.    
  74.     public void setSampleProperty(String value) {
  75.         String oldValue = this.sampleProperty;
  76.         this.sampleProperty = value;
  77.         propertySupport.firePropertyChange(PROP_SAMPLE_PROPERTY, oldValue, this.sampleProperty);
  78.     }
  79.    
  80.     /** accesseur en lecture de l'attribut <CODE>login</CODE>
  81.      * @return <CODE>login</CODE>
  82.      */   
  83.     public String getLogin() {
  84.         return this.login;
  85.     }
  86.    
  87.     /** Accesseur en écriture de l'attribut <CODE>login</CODE>.
  88.      * Lance un évênement PropertyChange.
  89.      * @param value Nouvelle valeur de <CODE>login</CODE>.
  90.      */   
  91.     public void setLogin(String value) {
  92.         String oldValue = this.login;
  93.         this.login = value.toUpperCase ();
  94.         propertySupport.firePropertyChange(PROP_LOGIN, oldValue, login);
  95.     }   
  96.    
  97.     /** accesseur en lecture de l'attribut <CODE>password</CODE>
  98.      * @return <CODE>password</CODE>
  99.      */   
  100.     public String getPassword() {
  101.         return this.password;
  102.     }
  103.    
  104.      /** accesseur en lecture de l'attribut <CODE>password</CODE> pour requête dans la base de données.
  105.      * Si  
  106.      * @return <CODE>password</CODE> si, dans la base de données le mot de passe n'est pas codé <CODE>(isPwdCrypted = false)</CODE>
  107.      * Si il y est codé, la valeur de retour de lengthmot de passe codé. Selon l'algorithme de codage Damaris <CODE>(Crypt/Decrypt)</CODE>
  108.      */   
  109.     public String getPasswordInTable () throws JLdsServletException{
  110.         if (this.isPwdCrypted)
  111.             return getCrypted (this.password);
  112.         else
  113.             return this.password;
  114.     }
  115.        
  116.    
  117.     /** Accesseur en écriture de l'attribut <CODE>password</CODE>.
  118.      * Lance un évênement PropertyChange.
  119.      * @param value Nouvelle valeur de <CODE>password</CODE>
  120.      */   
  121.     public void setPassword(String value) {
  122.         String oldValue = this.password;
  123.         this.password = value.toUpperCase ();
  124.         propertySupport.firePropertyChange(PROP_PASSWORD, oldValue, this.password);
  125.     } 
  126.    
  127.     /** accesseur en lecture de l'attribut <CODE>name</CODE>
  128.      * @return <CODE>name</CODE>
  129.      */   
  130.     public String getName() {
  131.         return this.name;
  132.     }
  133.    
  134.     /** Accesseur en écriture de l'attribut <CODE>name</CODE>.
  135.      * Lance un évênement PropertyChange.
  136.      * @param value Nouvelle valeur de <CODE>name</CODE>
  137.      */   
  138.     public void setName(String value) {
  139.         String oldValue = this.name;
  140.         this.name = value;
  141.         propertySupport.firePropertyChange(PROP_NAME, oldValue, this.name);
  142.     } 
  143.    
  144.     /** teste si l'utilisateur en cours à les droits d'un manager.
  145.      * @return <CODE>true</CODE> si l'utilisateur en cours à des droits de manager
  146.      */   
  147.     public boolean isManager() {
  148.         return this.isManager;
  149.     }
  150.     /** teste si les données de l'utilisateur en cours ont été récupérées depuis la bd.
  151.      * @return <CODE>true</CODE> les données de l'utilisateur en cours ont été récupérées depuis la bd.
  152.      */   
  153.     public boolean isLoaded () {
  154.         return this.isLoaded;
  155.     }
  156.    
  157.     /** récupère les données liées au login et au mot de passe de l'instance dans la table UTILISATEURS.
  158.      * Attention: les membre <CODE>login</CODE> et <CODE>password</CODE> doivent avoir été initialisés, sinon la fonction retournera <CODE>false</CODE> sans rien récupérer.
  159.      * @param stmt Statement permettant de récupérer les données dans la table UTILISATEURS
  160.      * @throws JLdsDataException Lancée si l'enregistrement correspondant au login et mot de passe n'a pas été trouvé ou si une erreur SQL à été reçue.
  161.      * @return <CODE>true</CODE> si les données ont été récupérées, <CODE>false</CODE> si l'enregistrement recherché n'a pas été trouvé
  162.      */   
  163.     public boolean getDataFromTable(java.sql.Connection con) throws JLdsDataException, JLdsServletException {
  164.         if (this.login == null || this.password == null)
  165.             return false;
  166.      
  167.         String colones  = ROW_UTIL + ", " + ROW_PASSWORD + ", " + ROW_NOMUTIL + ", " + ROW_CONFIG;
  168.         String sqlQuery = "select " + colones + " from " + TABLE_USERS + " where (" + ROW_UTIL + "='" + this.login + "')";
  169.         //sqlQuery       += " and " + ROW_PASSWORD + "=" + "'" + getCrypted (this.password) + "'";
  170.        
  171.         try {
  172.             java.sql.Statement stmt = con.createStatement ();
  173.             ResultSet res = stmt.executeQuery (sqlQuery);
  174.             if (!res.next ())
  175.                 return false;
  176.            
  177.             // Si le mot de passe entré ne correspond pas à celui dans la base de donnée             
  178.             if (!initFromResultSet (res))
  179.                 return false;
  180.             this.isLoaded = true;
  181.             stmt.close ();
  182.         }
  183.         catch (SQLException e) {
  184.             e.printStackTrace();
  185.             throw new JLdsDataException ("Une erreur est survenue lors de l'execution/lecture des résultats, de la requète :\n\t" + sqlQuery, e);
  186.         }
  187.         return true;
  188.     }
  189.        
  190.     private boolean initFromResultSet (ResultSet res) throws SQLException, JLdsServletException {
  191.         String loginFromTable = res.getString(1).trim ();
  192.         String pwdFromTable   = res.getString(2).trim ();
  193.         String nameFromTable  = res.getString(3).trim ();
  194.         String configFromTable= res.getString(4).trim ();
  195.        
  196.         if (configFromTable.charAt (0) == 'X')
  197.             this.isManager = true;
  198.         if (configFromTable.charAt (1) == 'X')
  199.             this.isPwdCrypted = true;
  200.        
  201.         if (this.isPwdCrypted){
  202.             if (!(this.password.equals(getDecrypted (pwdFromTable))))
  203.                 return false;
  204.         }
  205.         else {
  206.             if (this.password.equals (pwdFromTable))
  207.                 return false;
  208.         }
  209.        
  210.         this.name       = nameFromTable;
  211.        
  212.         return true;
  213.     }
  214.    
  215.     private static String getCrypted (String nonCrypted) throws JLdsServletException {
  216.         try {
  217.             char [] charsBuffer = new char[nonCrypted.length ()];
  218.             nonCrypted.getChars (0, nonCrypted.length (), charsBuffer, 0);
  219.             for (int i = 0; i < charsBuffer.length; i++) {
  220.                 charsBuffer[i] = (char)((int)charsBuffer[i] -17 +i);
  221.             }
  222.             return (String.copyValueOf (charsBuffer));
  223.         } catch (Exception e) {
  224.             throw new JLdsServletException ("Erreur dans le cryptage de " + nonCrypted, e);
  225.         }
  226.     }
  227.    
  228.     private static String getDecrypted (String crypted) throws JLdsServletException {
  229.         try {
  230.             char [] charsBuffer = new char[crypted.length ()];
  231.             crypted.getChars (0, crypted.length (), charsBuffer, 0);
  232.             for (int i = 0; i < charsBuffer.length; i++) {
  233.                 charsBuffer[i] = (char)((int)charsBuffer[i] +17 -i);
  234.             }
  235.             return (String.copyValueOf (charsBuffer));
  236.         } catch (Exception e) {
  237.             throw new JLdsServletException ("Erreur dans le décryptage de " + crypted, e);
  238.         }
  239.     }
  240.    
  241.     public void addPropertyChangeListener(PropertyChangeListener listener) {
  242.         propertySupport.addPropertyChangeListener(listener);
  243.     }
  244.    
  245.     public void removePropertyChangeListener(PropertyChangeListener listener) {
  246.         propertySupport.removePropertyChangeListener(listener);
  247.     }
  248.    
  249. }


Message édité par El_gringo le 17-06-2002 à 15:14:49
n°160892
El_gringo
Posté le 17-06-2002 à 15:17:56  profilanswer
 

voila, bonne chance...
Je prie pour qu'il y ai pas une grosse connerie ! :ange:


Message édité par El_gringo le 17-06-2002 à 15:18:20
n°160896
greg@frees​tarthu
Posté le 17-06-2002 à 15:20:07  profilanswer
 

euh juste comme ça "ROW" ça veut pas dire colonne, ça veut dire rangée (voir tes noms de constantes pour tes colonnes)
et aussi... as-tu déjà entendu parler de PreparedStatement??

n°160900
darklord
You're welcome
Posté le 17-06-2002 à 15:22:47  profilanswer
 

a mon avis, le fait de changer re en res t'as forcé à vraiment recompiler et c'est ca qui fait que ca marche.
 
Ca doit etre un truc du genre compilation qui ne compilait pas vraiment :)


---------------
Just because you feel good does not make you right
n°160902
darklord
You're welcome
Posté le 17-06-2002 à 15:23:13  profilanswer
 

tu as un attribut quelqconque qui est "re" dans ta classe?


---------------
Just because you feel good does not make you right
mood
Publicité
Posté le 17-06-2002 à 15:23:13  profilanswer
 

n°160907
El_gringo
Posté le 17-06-2002 à 15:25:01  profilanswer
 

greg@freestarthu a écrit a écrit :

euh juste comme ça "ROW" ça veut pas dire colonne, ça veut dire rangée (voir tes noms de constantes pour tes colonnes)
et aussi... as-tu déjà entendu parler de PreparedStatement??  




 
Ouais, je sais, 'faut que je corrige, g vu ça y a pas longtemps ! ça m'apprendra à vouloir me la pèter en mettant de noms anglais ! :D
PreparedStatement, ouais. C pour optimiser les requètes quand on veut en fait plein sur un statement, à la volée.
Pour un login, tu crois vraiement que c essenciel !? :D

n°160912
greg@frees​tarthu
Posté le 17-06-2002 à 15:28:51  profilanswer
 

el_gringo a écrit a écrit :

 
 
Ouais, je sais, 'faut que je corrige, g vu ça y a pas longtemps ! ça m'apprendra à vouloir me la pèter en mettant de noms anglais ! :D
PreparedStatement, ouais. C pour optimiser les requètes quand on veut en fait plein sur un statement, à la volée.
Pour un login, tu crois vraiement que c essenciel !? :D  




oui
parce que c bcp plus lisible

Code :
  1. "SELECT truc, muche, blabla FROM mytable WHERE pouet=?"


que

Code :
  1. SELECT "+colonnes+" FROM mytable WHERE "+mycol+"='" + myvalue + "'";

n°160923
El_gringo
Posté le 17-06-2002 à 15:36:10  profilanswer
 

DarkLord a écrit a écrit :

tu as un attribut quelqconque qui est "re" dans ta classe?  




 
Mon ResultSet s'appelait rs qd j'avais le pb...
Et non, g aucune autre variable qui s'appel rs.
sinon, pour compiler, j'utilise NetBean, et à chaque fois, avant de lancer ma servlet pour un test, je fais un Build Project...

n°160926
darklord
You're welcome
Posté le 17-06-2002 à 15:37:58  profilanswer
 

quoi qu'il en soit tu ne me feras pas croire (et je ne suis pas le seul à mon avis) que changer le nom d'une variable a fait que ca marche. Peut etre qu'en changeant le nom de la variable
 
- Tu as évité un conflit que tu n'as pas encore vu
- Tu as fait autre chose dont tu ne te souviens pas
- Tu as vraiment compilé cette fois ci
- ...
 
Mais le fait pur de changer de nom n'a AUCUN rapport avec le fait que ca marche / marche pas. Si tu remets ton résultset avec la valeur ancienne (re je crois non?) et que ca recommence à merder c'est qu'il y a un confilt de nom dans ton code qqpart.
 
 :hello:


---------------
Just because you feel good does not make you right
n°160931
El_gringo
Posté le 17-06-2002 à 15:39:48  profilanswer
 

greg@freestarthu a écrit a écrit :

 
oui
parce que c bcp plus lisible

Code :
  1. "SELECT truc, muche, blabla FROM mytable WHERE pouet=?"


que

Code :
  1. SELECT "+colonnes+" FROM mytable WHERE "+mycol+"='" + myvalue + "'";

 




 
ça change rien au pb, je serai encore obligé de faire des

Code :
  1. SELECT "+colonnes+" FROM mytable WHERE "+mycol+"='" + myvalue + "'";

 
l'intérêt de ça, c'est que le nom effectif de ma colone ou de ma table, ne se trouve qu'a un seul endroit. le prepared statement ne ferai que règler le truc de la variable "colones", qui est pas bien embêtante qd même !

n°160933
El_gringo
Posté le 17-06-2002 à 15:40:51  profilanswer
 

DarkLord a écrit a écrit :

quoi qu'il en soit tu ne me feras pas croire (et je ne suis pas le seul à mon avis) que changer le nom d'une variable a fait que ca marche. Peut etre qu'en changeant le nom de la variable
 
- Tu as évité un conflit que tu n'as pas encore vu
- Tu as fait autre chose dont tu ne te souviens pas
- Tu as vraiment compilé cette fois ci
- ...
 
Mais le fait pur de changer de nom n'a AUCUN rapport avec le fait que ca marche / marche pas. Si tu remets ton résultset avec la valeur ancienne (re je crois non?) et que ca recommence à merder c'est qu'il y a un confilt de nom dans ton code qqpart.
 
 :hello:  




 
Bah ouais, je me doute bien que t'as raison...
Ms bon. et puis tant pis, ça marche, c cool.
Sinon, mon code tu l'trouve correcte ? pas trop crade ?

n°160938
greg@frees​tarthu
Posté le 17-06-2002 à 15:44:29  profilanswer
 

el_gringo a écrit a écrit :

 
 
ça change rien au pb, je serai encore obligé de faire des

Code :
  1. SELECT "+colonnes+" FROM mytable WHERE "+mycol+"='" + myvalue + "'";

 
l'intérêt de ça, c'est que le nom effectif de ma colone ou de ma table, ne se trouve qu'a un seul endroit. le prepared statement ne ferai que règler le truc de la variable "colones", qui est pas bien embêtante qd même !  




 
oué enfin, déjà moi je mettrais pas du tout les requetes dans le code (mais dans un fichier properties par exempe)
 
...

n°160968
El_gringo
Posté le 17-06-2002 à 15:54:16  profilanswer
 

greg@freestarthu a écrit a écrit :

 
 
oué enfin, déjà moi je mettrais pas du tout les requetes dans le code (mais dans un fichier properties par exempe)
 
...  




 
Bah, je vois pas bien l'intéret. l'interet d'un fichier externe, c'est quand ça correspond à du paramètrage. pour pouvoir être changé sans recompilation. Là, c bon, la structure de cette table est pas prête de changer !

n°160974
greg@frees​tarthu
Posté le 17-06-2002 à 15:57:32  profilanswer
 

el_gringo a écrit a écrit :

 
 
Bah, je vois pas bien l'intéret. l'interet d'un fichier externe, c'est quand ça correspond à du paramètrage. pour pouvoir être changé sans recompilation. Là, c bon, la structure de cette table est pas prête de changer !  




 
je te renvoie a tes propres paroles:

el_gringo a écrit a écrit :

 
l'intérêt de ça, c'est que le nom effectif de ma colone ou de ma table, ne se trouve qu'a un seul endroit.


n°160981
darklord
You're welcome
Posté le 17-06-2002 à 16:04:55  profilanswer
 

:ouch: sévère là le camouflet de notre ami greg  :ouch:


---------------
Just because you feel good does not make you right
n°161010
greg@frees​tarthu
Posté le 17-06-2002 à 16:16:46  profilanswer
 

DarkLord a écrit a écrit :

:ouch: sévère là le camouflet de notre ami greg  :ouch:  




?

n°161032
darklord
You're welcome
Posté le 17-06-2002 à 16:24:16  profilanswer
 

greg@freestarthu a écrit a écrit :

 
?  




 
boutade powaa  :sol:


---------------
Just because you feel good does not make you right
n°161034
greg@frees​tarthu
Posté le 17-06-2002 à 16:24:39  profilanswer
 

DarkLord a écrit a écrit :

 
 
boutade powaa  :sol:  



euh oui mais j'ai pas compris:)

n°161109
El_gringo
Posté le 17-06-2002 à 16:58:24  profilanswer
 

greg@freestarthu a écrit a écrit :

 
 
je te renvoie a tes propres paroles:
 




 
Bah, l'avantage de faire comme je fait, c'est que le nom de ma table, ou le nom des colones peut changer, j'aurai à les changer qu'a un endroit dans le code, et à recompiler. Alors qu'avec ton truc, si un nom de table change, toutes les requêtes sont a changer !
(pour l'instant, y en a qu'une seule ds mon code, ms ça va grossir beaucoup).

n°161110
El_gringo
Posté le 17-06-2002 à 16:58:55  profilanswer
 

Et, personne m'a répondu: il à l'air propre mon code ou pas !??

n°161117
darklord
You're welcome
Posté le 17-06-2002 à 17:02:14  profilanswer
 

non. Par exemple tu as un objet Utilisateur qui étend serializable. En tant que tel cet objet ne devrait contenir que les informations liés à l'utilisateur (il devrait respsecter le Value Object design pattern).
 
Seulement tu mets plein de méthode business dedans. Ces méthodes ne devrait pas se trouver dans l'objet Utilisateur.
 
Ou alors Utilisateur n'est pas VO et n'étends pas sérializable


Message édité par darklord le 17-06-2002 à 17:03:15

---------------
Just because you feel good does not make you right
n°161122
greg@frees​tarthu
Posté le 17-06-2002 à 17:03:56  profilanswer
 

el_gringo a écrit a écrit :

 
 
Bah, l'avantage de faire comme je fait, c'est que le nom de ma table, ou le nom des colones peut changer, j'aurai à les changer qu'a un endroit dans le code, et à recompiler. Alors qu'avec ton truc, si un nom de table change, toutes les requêtes sont a changer !
(pour l'instant, y en a qu'une seule ds mon code, ms ça va grossir beaucoup).  




ben moi aussi si un nom de table change j'ai qu'a le changer à un endroit et je dois rien recompiler...
BREF.

n°161125
darklord
You're welcome
Posté le 17-06-2002 à 17:04:15  profilanswer
 

greg@freestarthu a écrit a écrit :

 
ben moi aussi si un nom de table change j'ai qu'a le changer à un endroit et je dois rien recompiler...
BREF.  




 
exact


---------------
Just because you feel good does not make you right
n°161126
El_gringo
Posté le 17-06-2002 à 17:04:22  profilanswer
 

DarkLord a écrit a écrit :

non. Par exemple tu as un objet Utilisateur qui étend serializable. En tant que tel cet objet ne devrait contenir que les informations liés à l'utilisateur (il devrait respsecter le Value Object design pattern).
 
Seulement tu mets plein de méthode business dedans. Ces méthodes ne devrait pas se trouver dans l'objet Utilisateur.
 
Ou alors Utilisateur n'est pas VO et n'étends pas sérializable  




 
g pas besoin qu'il étende Serializable
C'est NetBean, quand on lui dit de créer un nouveau JavaBean, il fait ça.
Un Bean c pas obligé d'être sérialisable !?

n°161131
greg@frees​tarthu
Posté le 17-06-2002 à 17:05:48  profilanswer
 

el_gringo a écrit a écrit :

 
 
g pas besoin qu'il étende Serializable
C'est NetBean, quand on lui dit de créer un nouveau JavaBean, il fait ça.
Un Bean c pas obligé d'être sérialisable !?  




ben ouais mais c pas un bean ton truc:)
(un bean doit avoir un constructeur sans argument
JE LE SAIS ON ME l'A DEMANDE A MON ENTRETIEN D'EMBAUCHE  :lol:  :lol:  :lol: )

n°161135
darklord
You're welcome
Posté le 17-06-2002 à 17:06:22  profilanswer
 

greg@freestarthu a écrit a écrit :

 
ben ouais mais c pas un bean ton truc:)
(un bean doit avoir un constructeur sans argument
JE LE SAIS ON ME l'A DEMANDE A MON ENTRETIEN D'EMBAUCHE  :lol:  :lol:  :lol: )  




 
greg >>> ;)
 
mdr


---------------
Just because you feel good does not make you right
n°161154
El_gringo
Posté le 17-06-2002 à 17:09:15  profilanswer
 

greg@freestarthu a écrit a écrit :

 
ben ouais mais c pas un bean ton truc:)
(un bean doit avoir un constructeur sans argument
JE LE SAIS ON ME l'A DEMANDE A MON ENTRETIEN D'EMBAUCHE  :lol:  :lol:  :lol: )  




 
Et ben, il a bien un constructeur vide...
Il ne doit avoir QUE un constructeur vide ?

n°161157
darklord
You're welcome
Posté le 17-06-2002 à 17:10:08  profilanswer
 

el_gringo a écrit a écrit :

 
 
Et ben, il a bien un constructeur vide...
Il ne doit avoir QUE un constructeur vide ?  




 
oui


---------------
Just because you feel good does not make you right
n°161158
greg@frees​tarthu
Posté le 17-06-2002 à 17:10:13  profilanswer
 

el_gringo a écrit a écrit :

 
 
Et ben, il a bien un constructeur vide...
Il ne doit avoir QUE un constructeur vide ?  



oui  
enfin je crois:)

n°161160
darklord
You're welcome
Posté le 17-06-2002 à 17:10:35  profilanswer
 

grillaid :D yeah  :sol:


---------------
Just because you feel good does not make you right
n°161180
El_gringo
Posté le 17-06-2002 à 17:16:34  profilanswer
 

DarkLord a écrit a écrit :

 
 
oui  




 
ha, je m'en vais corriger ça...
Et c quoi l'intéret au juste !?

n°161210
El_gringo
Posté le 17-06-2002 à 17:42:47  profilanswer
 

DarkLord a écrit a écrit :

non. Par exemple tu as un objet Utilisateur qui étend serializable. En tant que tel cet objet ne devrait contenir que les informations liés à l'utilisateur (il devrait respsecter le Value Object design pattern).
 
Seulement tu mets plein de méthode business dedans. Ces méthodes ne devrait pas se trouver dans l'objet Utilisateur.
 
Ou alors Utilisateur n'est pas VO et n'étends pas sérializable  




 
D'après toi, je ferai mieux d'avoir 2 classes:
 - une classe Utilisateur, qui contient le contenu d'un enregistrement dans la table utilisateur
 - une classe SQLUtilisateur qui gère les requètes liées à la table Utilisateurs (avec par exemple, une méthode getUtilisateur) c ça ?
 
Et en fait, g une Quizaine de tables. Pouir chacune, je devrais faire 2 classes ? (une pour les données, une pour les méthodes business)
Et, si je fais ça, je vais faire une classe abstraite SQLTable qui sera étendue par tous les SQLUtilisateurs et autres, non ?
Cette classe abstraite aura une méthode :

Code :
  1. abstract MonInterfaceEnregistrement getOneEnreg (String whereClause)


où MonInterfaceEnregistrement est une interface implémentée par les "Utilisateur" et autre classes qui contiennent les données d'un enregistrement d'une de mes tables (pas les méthodes business d'accès à la BD).
ça te parait correct ça ?


Message édité par El_gringo le 17-06-2002 à 17:47:00
n°161229
El_gringo
Posté le 17-06-2002 à 18:03:22  profilanswer
 

Hé, vous répondez pas. Ce que je viens de dire, vous le jugez :
 - incompréhensible ?  
 - ininteressant ?
 - trop compliqué pour vous ? :D
 - vous venez de lire ça, et vous allez vous empresser d'y répondre ?

n°161231
benou
Posté le 17-06-2002 à 18:06:04  profilanswer
 

DarkLord a écrit a écrit :

 
 
oui  




non

n°161235
El_gringo
Posté le 17-06-2002 à 18:09:31  profilanswer
 

benou a écrit a écrit :

 
non  




ha, merde, je viens de changer... tant pis.
C tt ce que t'as à dire Benou !?

n°161242
benou
Posté le 17-06-2002 à 18:15:03  profilanswer
 

bha oui pour le moment ...  
 
il fait trop chuad : si j'essaye de réfléchir pour dire un truc, mon cerveau va planter ...

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3

Aller à :
Ajouter une réponse
 

Sujets relatifs
(JAVA) Comment faire des cases en cascades en Java ?![java - applet] exécuter une commande sur le serveur web ? !
Problème de java sur un page html.... et j'ai rien fait de mal !!Problème de java sur un page html....
[Java] Conseil pour un bouquin de dev GUI Swing[java] dernière occurence d'un caractère dans une String
(JAVA]couleur + fonte JLabel[Java] obtenir le code ASCII d'un caractère
[Java] pb avec les Exceptions[C --> Java] Quel est l'équivalent d'un enum
Plus de sujets relatifs à : [Java] Exception lancée alors que ça devrais passer !


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR