Bonjour à tous.
Alors voilà je dois développer une application utilisant JDBC. Jusqu'ici tout se passait bien j'enchainais les requêtes avec zèle, jusqu'à ce qu'une requête me sorte ResultSet Closed en SQLException. J'ai beau chercher je ne vois pas le problème. Ma requête est censé me retourner un objet de type Equipement mais pas moyen. J'ai vérifié les données de ma BDD et celle demandées correspondent.
En exécutant directement la requête dans le SGBD, j'obtiens bien le résultat souhaité. Ce qu'il faut savoir c'est que la requête ne peut retourner uniquement 1 ou 0 résultat.
Voici le code minimal :
Mes autres requêtes sur le même schéma fonctionnent sans problème pourtant.
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 public class SQLite { String database; Connection connection; Statement statement; ResultSet resultat; public SQLite(String database) { this.database = database; try { //Chargement du driver JDBC Class.forName("org.sqlite.JDBC"); //Connexion à la base de données String url = "jdbc:sqlite:" + database; connection = DriverManager.getConnection(url); } catch (SQLException ex) { Logger.getLogger(SQLite.class.getName()).log(Level.SEVERE, null, ex); } catch (ClassNotFoundException ex) { Logger.getLogger(SQLite.class.getName()).log(Level.SEVERE, null, ex); } } public ResultSet executerRequete(String requete) { resultat = null; try { statement = connection.createStatement(); resultat = statement.executeQuery(requete); } catch(SQLException e) { Logger.getLogger(SQLite.class.getName()).log(Level.SEVERE, null, e); } return resultat; } //ici que ça foire au moment de récupérer avec getInt() public Equipement donnerEquipement(String nomEquipement) { System.out.println("test entrée"); Equipement sortie = null; try { ResultSet resultat = executerRequete("SELECT * FROM Equipements WHERE nom = '" + nomEquipement + "'"); int id = resultat.getInt("id"); String code = resultat.getString("code"); int idProduit = resultat.getInt("idProduit"); String nom = resultat.getString("nom"); String libelle = resultat.getString("libelle"); String image = resultat.getString("image"); sortie = new Equipement(id, code, idProduit, nom, libelle, image); } catch(SQLException e) { e.printStackTrace(); } return sortie; } }
Quelqu'un à une idée ?
Merci d'avance
Partager