Problème requête SQL avec JEE
Guillaume
-
Guillaume -
Guillaume -
Bonjour,
J'ai commencé à créer un projet avec JEE dont une de mes servlet fait une requête select en sql. Afin de ne pas allourdir le code, j'ai décidé de créer une classe dont j'utilise les méthodes pour exécuter les requêtes.
Mon problème est que lorsque j'essaie d'accéder à ma servlet en tapant son nom dans la barre d'adresse de mon navigateur, Tomcat me dit qu'il y a une erreur de type NullPointerException au niveau de ma méthode exécutant la requête select :
La méthode appelant cette dernière est :
Avant tomcat me disait qu'il y avait une NullPointerException mais maintenant il ne charge plus la page, comme s'il était bloqué par eclipse (l'icone se met à cligntoter)
Pourriez-vous m'aider? Je ne suis pas débutant en java mais c'est quasiment la première fois que je me lance dans le JEE.
J'ai commencé à créer un projet avec JEE dont une de mes servlet fait une requête select en sql. Afin de ne pas allourdir le code, j'ai décidé de créer une classe dont j'utilise les méthodes pour exécuter les requêtes.
Mon problème est que lorsque j'essaie d'accéder à ma servlet en tapant son nom dans la barre d'adresse de mon navigateur, Tomcat me dit qu'il y a une erreur de type NullPointerException au niveau de ma méthode exécutant la requête select :
public ResultSet requeteSelect(String req) throws SQLException{
stmt = connexion.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
resultat = stmt.executeQuery(req);
return resultat;
}
La méthode appelant cette dernière est :
public void doGet (HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException{
Sql sql = new Sql();
String requete = "SELECT * FROM album;";
ResultSet resultat = null;
int id;
String nom;
String genre;
String pochette;
int annee;
boolean disponible;
try {
resultat = sql.requeteSelect(requete);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ArrayList<Album> lesAlbums = new ArrayList();
try { //Ajout des résultats dans la collection
while (resultat.next()) {
id = Integer.parseInt(resultat.getString("IDDISQUE"));
nom = resultat.getString("NOM");
genre = resultat.getString("GENRE");
pochette = resultat.getString("POCHETTE");
annee = Integer.parseInt(resultat.getString("ANNEE"));
if(resultat.getString("DISPONIBLE") == "oui"){
disponible = true;
}
else{
disponible = false;
}
lesAlbums.add(new Album(id, nom, genre, pochette, annee, disponible));
}
} catch (NumberFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
request.setAttribute("lesAlbums", lesAlbums);
//request.setAttribute("colorString", new ColorModel().getColor());
request.getRequestDispatcher("choisirAlbum.jsp").forward(request, response);
}
Avant tomcat me disait qu'il y avait une NullPointerException mais maintenant il ne charge plus la page, comme s'il était bloqué par eclipse (l'icone se met à cligntoter)
Pourriez-vous m'aider? Je ne suis pas débutant en java mais c'est quasiment la première fois que je me lance dans le JEE.
A voir également:
- Problème requête SQL avec JEE
- Logiciel sql - Télécharger - Bases de données
- Requête sql pour afficher uniquement les fleurs dont le prix est strictement inférieur à 10 euros ✓ - Forum DS
- Sql (+) - Forum Programmation
- Jointure sql ✓ - Forum MySQL
- Quelle requête écrire pour demander au moteur de recherche de présenter de préférence les pages web traitant de tennis mais pas de tennis de table ✓ - Forum Android
4 réponses
Hello,
Déjà pour commencer tu pourrais mettre des tests d'objet = null ou non pour vérifier les objets stmt et resultat après chaque ligne. Et surtout resultat avant de tenter de le parcourir avec le next()
Et puis poster l'erreur donnée par Eclipse aussi, pourquoi pas :-)
Déjà pour commencer tu pourrais mettre des tests d'objet = null ou non pour vérifier les objets stmt et resultat après chaque ligne. Et surtout resultat avant de tenter de le parcourir avec le next()
Et puis poster l'erreur donnée par Eclipse aussi, pourquoi pas :-)
J'ai mis stmt = null et resultat = null dans ma fonction requeteSelect mais ça ne change rien.
Je ne peux pas poster le message d'erreur d'eclipse car celui ci ne fait juste que surligner en vert ma ligne
et ensuite :
quand je passe la première en commentaire.
Il me semble que cela a un rapport avec debug mais je n'ai jamais utilisé cet outils.
Je ne peux pas poster le message d'erreur d'eclipse car celui ci ne fait juste que surligner en vert ma ligne
stmt = connexion.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
et ensuite :
stmt = null;
quand je passe la première en commentaire.
Il me semble que cela a un rapport avec debug mais je n'ai jamais utilisé cet outils.