IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Classe standard n°2


Sujet :

avec Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Janvier 2009
    Messages : 22
    Points : 26
    Points
    26
    Par défaut Classe standard n°2
    Bonjour,
    Tous d’abord je tiens à remercier tous ceux qui ont participez a l’amélioration de ma première classe standard. En voici la deuxième c’est une classe qui sert à gérer les requêtes d’une base de données Access.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    /**
     * @(#)connexion.java
     * @authors LASSOUI Khaled
     * @version 1.00 2008/8/13
     */
     
     
    package SQLManager ;
     
    import java.sql.* ;
     
     
    public class connexion {
     
    //driver odbc	
     
    public static final String DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver"; 
     
    // sous protocole + url de la base ;
     
    public static final String PATH   =	"jdbc:odbc:DRIVER=Microsoft Access Driver (*.mdb);DBQ=";	
     
    public Connection con = null ;
    public Statement  sta = null ;
    public ResultSet  res = null ;	
    public ResultSetMetaData md = null ;		
     
        public connexion(String path) throws Exception {
     
        Class.forName(DRIVER) ;	// preciser le pilote d'accees a la base .
     
        con = DriverManager.getConnection(PATH+path+";") ; // etablir une connexion TCP/IP a la base .
     
    	sta = con.createStatement() ;// creer un 'statement' pour executer les requtes sql .	
     
        }
     
        public void LancerRequete(String requete) throws Exception {
     
        	/* executer la requete et affecter les resultats a la variable 'res'
        	 * qui represente le jeu de resultats... */   	
     
        	res = sta.executeQuery(requete) ;
     
        	//  recuperer le schema du resultat (nom de colonnes , type ...)
     
        	md = res.getMetaData() ;
        }
     
        public void LancerMAJ(String requete) throws Exception {
     
        	// effectuer une mise a jour de la base en executant la requete
     
        	sta.executeUpdate(requete) ;
        }	
     
     
    }
    Je vous invite a apportez votre contribution pour en faire la classe standard la plus complète possible, alors de la critiques constructives et des propositions, vos versions notamment, sont les bien venues.
    Je vous remercie d’avance.

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Perso j'y vois plein de défaut et peu d'intérêt :

    • Ta classe est limité à un seul drivers ultra-spécifique ! C'est con car cela va à l'encontre
    • Tous tes champs sont public
    • Tu remontes des Exceptions, ce qui ne permet pas de traiter correctement les problèmes. Des SQLException seraient plus approprié.
    • Tu conserves tout en attributs d'instance : la classe ne pourra donc pas être partagé !
    • Tu ne fermes pas les ressources (connection, statement, resultset) (lire : Comment libérer proprement les ressources (ou comment utiliser proprement les bloc try/finally) ?) !!! Petit à petit tu vas surcharger le serveur de BD car le Statement et les ResultSet n'auront pas été fermé. Dans une application desktop à courte durée de vie cela ne se vera peut-être pas, mais sur une application serveur ou de longue durée cela peut pourrir les perfs avant d'aboutir à un plantage...



    De plus cela n'apporte pas grand chose par rapport à l'utilisation directe de JDBC...

    a++

  3. #3
    Nouveau membre du Club
    Inscrit en
    Janvier 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Janvier 2009
    Messages : 22
    Points : 26
    Points
    26
    Par défaut
    Merci poue les tuyaux

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Classe standard personnels n°01
    Par khaledzz9 dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 11/02/2009, 09h20
  2. Réponses: 3
    Dernier message: 27/09/2007, 14h24
  3. classe et exe standard
    Par totoche dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 10/07/2006, 18h02
  4. Réponses: 4
    Dernier message: 19/04/2006, 15h10
  5. Existe t il une doc de toutes les classes dites standard?
    Par CnD dans le forum Choisir un environnement de développement
    Réponses: 5
    Dernier message: 27/11/2005, 11h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo