Connexion MySql et Statement - JEE

Résolu/Fermé
Guillaume - 23 mai 2010 à 19:00
 Guillaume - 23 mai 2010 à 22:58
Bonjour,

Je suis en train de programmer un projet en Java (JEE). J'ai pour l'instant créer une servlet, censée envoyé à ma page JSP une collection d'objet (ArrayList).

Cependant j'ai un problème au niveau de ma connexion à la base de données, et plus particulièrement au moment de créer ma variable Statement me permettant de faire des requêtes.
J'obtiens une erreur de type NullPointerException. Je pense que c'est la connexion qui ne s'est pas faite mais après avoir vérifier que mes paramètres soient bon, je ne sais pas quoi faire.

Voici l'erreur :
java.lang.NullPointerException
	controleur.EmprunterAlbum.doGet(EmprunterAlbum.java:72)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)


Voici ma classe :
package controleur;

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.swing.JOptionPane;

import musique.Album;

import utilitaire.Sql;


public class EmprunterAlbum extends HttpServlet{

	
	public void doGet (HttpServletRequest request, HttpServletResponse response)
	throws ServletException, IOException{
		JOptionPane joptDialogue = new javax.swing.JOptionPane();
		
		//String pilote = "com.mysql.jdbc.Driver";
		String pilote = "org.gjt.mm.mysql.Driver";
	    String protocoleDeConnexion= "jdbc:mysql:";      // début url
	    String url = "//localhost:3306/megatheque";	// fin url

	    // Paramètres propres au SGBD
	    String utilisateurBD = "root";
	    String motDePasseBD = "";
	    String schemaBD = ""; // Pour Oracle, il faut préfixer le nom de la table par le nom du schéma

	    // Variables contenant des objets de JDBC
	    Connection connexion = null;       // L'identifiant de connexion
	    ResultSet resultat = null;			// La liste des enregistrements
	    Statement stmt = null;				// l'instruction SQL
	    String texteRequete = "";
	    

		try{
            // PREMIERE ETAPE : chargement du pilote JDBC
            Class.forName(pilote) ;         //jdbc driver

            // DEUXIEME ETAPE : connexion au SGBD : on fournit login et mot de passe (pas pris en compte avec notre base Access)
            connexion = DriverManager.getConnection(protocoleDeConnexion + url, utilisateurBD, motDePasseBD);  //url = base
		
		}
		catch (ClassNotFoundException e) {
            e . printStackTrace() ;
        } catch (SQLException e) {
            e . printStackTrace() ;
        }
		
		
		int id;
		String nom;
		String genre;
		String pochette;
		int annee;
		boolean disponible;
		
		 try{
             texteRequete= "SELECT * FROM album;";
             
             stmt = connexion.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
             //stmt = connexion.createStatement();

             	if(stmt == null){
               	 
               	 joptDialogue.showMessageDialog(joptDialogue, "kfhjsdhf");
                }
             
             System.out.println(texteRequete);
             resultat = stmt.executeQuery(texteRequete);
		 } catch (SQLException e) {
             e . printStackTrace() ;
         }


		
		ArrayList<Album> lesAlbums = new ArrayList<Album>();
		
		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);		
}

}



Avez vous des solutions?

A voir également:

1 réponse

Je viens de trouver la réponse à mon problème.
Mon servlet ne trouvait pas le driver jdbc malgré que je l'avais ajouté dans mon projet Eclipse. J'ai alors copier/coller le driver dans le dossier lib/ext de mon JRE et tout marche normalement.
0