Bonjour à tous,
Au fait j'ai pu repérer là ou se trouve mon erreur quand je tente de modifier.En effet, j'ai remplacé le paramètre ? que j'ai mis lors de l'appel de ma procédure stockée(
private static final String SelectionParNumEtudiantCons = "call SelectionParNumEtudiant(?)";
)
par un matricule d'un étudiant que j'ai enregistré dans ma base et j'ai supprimé cette ligne :
preparedStatement.setString(1,etudiant.getNumEtudiant());
dans la méthode
public List<Etudiant> EtudiantSelectionner(Etudiant etudiant) throws DAOException
tout a marché(les champs de mon formulaire s'affiche bien avec des informations relatives au matricule) mais dès que je remet le ? et la ligne
preparedStatement.setString(1,etudiant.getNumEtudiant());
J'ai l'erreur suivante dans le navigateur :
ça m'indique une erreur à la ligne 138 et c'est là que se trouve :
preparedStatement.setString(1,etudiant.getNumEtudiant());
Je me suis dit que peut être l'affectation
preparedStatement.setString(1,etudiant.getNumEtudiant());
n'est valable que pour des opérations de mise à jour c'est-à-dire insertion,update et suppression alors que pour mon cas c'est de prendre les informations relatives à un matricule donné et les afficher dans les champs de mon formulaire de modification.
Je demande votre aide pour savoir comment m'y prendre.
Voici mon code :
Voici comment je créé le lien vers ma servlet de modification à partir de la liste des étudiants :
<td><a href = "<c:url value = "/modifierEtudiant"><c:param name = "matricule" value = "${mapEtudiant.key}"/></c:url>"><img src = "<c:url value = "/Image/modif.png"/>" alt = "Modifier"/></a></td>
Code de la méthode EtudiantSelectionner(Etudiant etudiant):
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
|
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import static DAO.DAOUtilitaire.*;
import DAOException.DAOException;
import LesObjets.Etudiant;
public class EtudiantDaoImpl implements EtudiantDao {
private static final String SelectionCons = "call SelectionEtudiant()";
private static final String insertionEtudiant = "call AjoutEtudiant(?,?,?,?)";
private static final String suppressionEtudiant = "call SuppressionEtudiant(?)";
private static final String SelectionParNumEtudiantCons = "call SelectionParNumEtudiant(?)";
//private static final String selectionParEtudiant = null;
private DAOFactory daoFactory;
EtudiantDaoImpl(DAOFactory daoFactory){
this.daoFactory = daoFactory;
}public List<Etudiant> EtudiantSelectionner(Etudiant etudiant) throws DAOException {
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultat = null;
List<Etudiant> etudiants = new ArrayList<Etudiant>();
try{
connection = daoFactory.getConnection();
//int[] NumEtudiant = null;
preparedStatement = connection.prepareStatement(SelectionParNumEtudiantCons);
preparedStatement.setString(1,etudiant.getNumEtudiant());
resultat = preparedStatement.executeQuery();
while(resultat.next()){
etudiants.add(Stockage(resultat));
}
}catch(SQLException e){
throw new DAOException("La selection a échoué.",e);
}finally {
fermeturesSilencieuses( resultat, preparedStatement,connection );
}
return etudiants;
}
} |
Code de la servlet de modification :
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 60 61 62 63 64
| ackage TPServlet;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import CoucheMetier.EtudiantMetier;
import DAO.DAOFactory;
import DAO.EtudiantDao;
import DAOException.DAOException;
import LesObjets.Etudiant;
@WebServlet("/modifierEtudiant")
public class modifierEtudiant extends HttpServlet {
private static final long serialVersionUID = 1L;
private static final String ConDAOFactory = "daoFactory";
private static final String matriculeCons = "matricule";
private static final String sessionEtudiantUnique = "resultas";
private static final String cheminModif = "/WEB-INF/modifierEtudiant.jsp";
private EtudiantDao etudiantDao;
public void init() throws ServletException {
this.etudiantDao = ((DAOFactory) getServletContext().getAttribute(ConDAOFactory)).getEtudiantDao();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String matricule = request.getParameter(matriculeCons);
HttpSession session = request.getSession();
if(matricule != null){
Map<String,Etudiant> resultas = (HashMap<String, Etudiant>) session.getAttribute(sessionEtudiantUnique) ;
Etudiant etudiant = new Etudiant();
try{
//Etudiant matri = resultas.get(matricule);
etudiantDao.EtudiantSelectionner(resultas.get(matricule));
resultas.put(etudiant.getNumEtudiant(),etudiant);
}catch(DAOException d){
d.printStackTrace();
}
session.setAttribute(sessionEtudiantUnique, resultas);
}
this.getServletContext().getRequestDispatcher(cheminModif).forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
} |
Merci d'avance!!!
Partager