aidez moi à améliorer mes fonctions :o

aidez moi à améliorer mes fonctions :o - Java - Programmation

Marsh Posté le 26-09-2005 à 08:34:39    

Code :
  1. public Vector getListLieux() {
  2.     Vector vVals = new Vector();
  3.     String rsql = "SELECT * FROM t_lieu";
  4.     ResultSet rs = dbc.createResultSet(rsql);
  5.     try {
  6.       while (rs.next()) {
  7.         vVals.add(new Lieu(rs.getString(3), rs.getInt(2), rs.getInt(1)));
  8.       }
  9.     }
  10.     catch (SQLException se) {
  11.       dbc.showListSqlExceptions(se);
  12.     }
  13.     try {
  14.       if (rs != null) {
  15.         rs.close();
  16.       }
  17.     }
  18.     catch (SQLException se) {
  19.       dbc.showListSqlExceptions(se);
  20.     }
  21.     return vVals;
  22.   }

voila je me demandais si y avait qqchose à faire pour que ce soit plus efficace ou plus beau ?

Reply

Marsh Posté le 26-09-2005 à 08:34:39   

Reply

Marsh Posté le 26-09-2005 à 09:25:59    

Déjà : ne pas utiliser la class est Vector, elle n'est pas "deprecated" mais presque ( raisons de compatibilité ), utilise plutot  ArrayList pour remplacer Vector. Enfin en fonction de ton application et de tes besoins, tu peux utiliser d'autres sortes de listes ( void javadoc pour java.util )  

Reply

Marsh Posté le 26-09-2005 à 10:21:45    

thx.., si vous avez encore d'autres trucs...

Reply

Marsh Posté le 26-09-2005 à 11:21:59    

Code :
  1. public Vector avoirTousLesObjetsUtilisateurs()
  2.   {
  3.   Vector tousUtilisateurs = new Vector();
  4.   try {
  5.       Statement statement = dbconn.createStatement();
  6.       String query = "SELECT * FROM Utilisateur";
  7.       dbconn.nativeSQL(query);
  8.       ResultSet rs = statement.executeQuery(query);
  9.       while (rs.next())
  10.         {
  11.         Utilisateur utili = new Utilisateur();
  12.      
  13.         utili.setIdUtilisateur( rs.getInt(1)    );
  14.         utili.setPrenom(        rs.getString(2) );
  15.         utili.setNom(           rs.getString(3) );
  16.         utili.setMotDePasse(    rs.getString(4) );
  17.         utili.setFonction(      rs.getString(5) );
  18.         utili.setDroitsAdmin(   rs.getBoolean(6) );
  19.         utili.setActif(         rs.getBoolean(7) );
  20.      
  21.         tousUtilisateurs.addElement( utili );
  22.         }
  23.       statement.close();
  24.       }
  25.   catch (SQLException sqlex)
  26.       {
  27.       System.out.println(sqlex.toString());
  28.       }
  29.   return tousUtilisateurs;
  30.   }

c'est mieux comme ca ou comme j'ai fait ? sans regarder les vector

Reply

Marsh Posté le 26-09-2005 à 12:59:14    

évite de bouffer l'exception dans  

Code :
  1. catch (SQLException sqlex)
  2.        {
  3.        System.out.println(sqlex.toString());
  4.        }


si une erreur SQL est inenvisageable, utilise  

Code :
  1. catch (SQLException sqlex)
  2.        {
  3.        throw new RuntimeException(sqlex);
  4.        }


 
si une liste partielle te convient (par exmple) :

Code :
  1. public Vector avoirTousLesObjetsUtilisateurs()
  2.   {
  3.   Vector tousUtilisateurs = new Vector();
  4.   try {
  5.       Statement statement = dbconn.createStatement();
  6.       String query = "SELECT * FROM Utilisateur";
  7.       dbconn.nativeSQL(query);
  8.       ResultSet rs = statement.executeQuery(query);
  9.       while (rs.next())
  10.         {
  11. try {
  12.         Utilisateur utili = new Utilisateur();
  13.      
  14.         utili.setIdUtilisateur( rs.getInt(1)    );
  15.         utili.setPrenom(        rs.getString(2) );
  16.         utili.setNom(           rs.getString(3) );
  17.         utili.setMotDePasse(    rs.getString(4) );
  18.         utili.setFonction(      rs.getString(5) );
  19.         utili.setDroitsAdmin(   rs.getBoolean(6) );
  20.         utili.setActif(         rs.getBoolean(7) );     
  21.         tousUtilisateurs.addElement( utili );
  22. }catch(SQLException sqlex)
  23. {
  24. // on bouffe l'exception
  25. }
  26.         }
  27.       statement.close();
  28.       return tousUtilisateurs;
  29.       }
  30.   catch (SQLException sqlex)
  31.       {
  32.       System.out.println(sqlex.toString());
  33.       return new Vector();
  34.       }
  35.   }


Message édité par nraynaud le 26-09-2005 à 14:23:26

---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 26-09-2005 à 14:22:08    

skoi ce catch vide ? [:dawao]

Reply

Marsh Posté le 26-09-2005 à 14:23:03    

y'avait un commentaire dedans [:pingouino]


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 26-09-2005 à 14:25:39    

tu bouffes les exceptions toi ? [:le kneu]

Reply

Marsh Posté le 26-09-2005 à 14:28:12    

[quote]

# catch (SQLException sqlex)
#       {
#       System.out.println(sqlex.toString());
#       return new Vector();
#       }
#   }

[quote]
mais qu'est-ce qu'ils ont fait d'nraynaud[:pingouino]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 26-09-2005 à 14:28:15    

ça peut arriver, là on sait repartir (enfin, j'ai peut-être oublié un truc dans la précipitation) on saute toute la ligne du resultset et on va à la suivante.
 
Je ne montre ça qu'à titre d'exemple de cas où on sait repartir sur une exception dans certaines sections du code, mais pas dans d'autres.


---------------
trainoo.com, c'est fini
Reply

Sujets relatifs:

Leave a Replay

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