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

Servlets/JSP Java Discussion :

Fermeture connection et persistance ResultSet


Sujet :

Servlets/JSP Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2007
    Messages : 64
    Points : 41
    Points
    41
    Par défaut Fermeture connection et persistance ResultSet
    Bonjour à tous,

    J'ai un petit souci avec une servlet qui se connecte à une base de données, puis renvoie un ResultSet.

    Je récupère ce ResultSet dans un fichier jsp pour affichage.
    En gros, si je ne ferme pas la connection à la fin de la servlet ça marche, mais si je la ferme, la jsp renvoie une null key exception ... sachant que laisser la connection ouverte ne me plaît pas trop

    Voici le code de ma servlet

    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
     
    public static ResultSet donneesTableauProduit(String annee) {
    ResultSet resultProduit = null;
    String url = "jdbc:mysql://localhost/mabasededonnees";
    Connection con=null;
            try {
                Class.forName("com.mysql.jdbc.Driver");
            }
            catch (ClassNotFoundException e) {
                System.err.print("ClassNotFoundException: ");
                System.err.println(e.getMessage());
            }
            try {
    		con = DriverManager.getConnection(url, "user", "user");
    		Statement stmt=con.createStatement();		
    		String sql = "SELECT Produit, COUNT(ID) FROM data_table Where Year='" +annee + "'";
    		resultProduit=stmt.executeQuery(sql);
            stmt.close();
            }
            catch (SQLException e) {
                System.err.print("SQLException: ");
                System.err.println(e.getMessage());
            }
            catch (Exception e) {
                System.err.print("Exception: ");
                System.err.println(e.getMessage());
            }
            finally{
            	try{
                              //le fermeture de la connection qui pose problème !!!
            		if (con != null) {
            		con.close();
            		}
            		} catch (SQLException sqle) {}
            }
    		return resultProduit;
    Si certains ont des idées pour contourner ce problème, ce serait super sympa.

    Merci par avance,

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Quand tu a fermé la connection db, tu ne peux plus manipuler le resultSet, puisque celui-ci est un handle base de donnée. Tout simplement, dans ta méthode, parcours le resultSet toi même, extrait les valeur dont tu a besoin et stocke tout çà dans une java.util.List que tu retourne à l'appelant.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2007
    Messages : 64
    Points : 41
    Points
    41
    Par défaut
    OK, c'est ce que je pensais.

    Je voulais juste être sûr qu'il n'y avait pas une erreur grosse comme une montagne dans mon code que je ne voyais pas.

    Merci pour ta réponse

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

Discussions similaires

  1. DataReader et fermeture Connection
    Par PatStan17 dans le forum ASP.NET
    Réponses: 6
    Dernier message: 10/12/2009, 09h25
  2. Transfert ftp - fermeture connection
    Par koktel_dfr dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 22/05/2008, 19h41
  3. Réponses: 6
    Dernier message: 28/04/2006, 10h56
  4. [JDBC] Persistence d'update de ResultSet
    Par Jie.N dans le forum JDBC
    Réponses: 8
    Dernier message: 22/08/2005, 18h15
  5. Réponses: 3
    Dernier message: 28/09/2004, 16h39

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