Insertion dans la base de données et envoie de message d'erreur

Résolu
imanebachiri - 21 mai 2013 à 16:06
 imanebachiri - 28 mai 2013 à 16:52
Bonjour tout le monde
je veux savoir comment faire le test dans ma servlet sur ma base de données :
Quand l'utilisateur saisi les données à partir d'un formulaire pour un certain id
si elle existe déjà une entrée dans la base correspondante à cet id on empêche l'insertion et un message est affiché à l'utilisateur pour indiquer que il existe déja une entrée dans la base pour cet ID

Merci beaucoup pour vos réponses

7 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
22 mai 2013 à 09:10
Salut,

Définir l'id de ta base de données en clé primaire, si c'est impossible, définit le en UNIQUE et là, tu n'auras rien d'autre à faire.
3
imanebachiri
27 mai 2013 à 21:22
Merci bcp Julien; maintenant j'ai un autre problème je veux faire le test dans ma servlet si ma ligne est insérée dans la base de données (le resultat de updatequery=1)je veux afficher un message indiquant que la ligne est correctement insérée

merci d'avance pour vos réponse
0
Bonjour essai ce bout de code sa marche
            int n=updatequery(le_nom_de_la_requete);
            if(n>0)
                JOptionPane.showMessageDialog(null, "operation reussi");
            
0
imanebachiri
28 mai 2013 à 16:09
Merci bcp de m'avoir répondu ça marche mais à chaque fois je règle un problème il me sort un autre mon problème maintenant est que quand j'exécute ma requête et si la ligne n'est pas inséré et JOptionPane s'affiche jusqu'au là ç bon (n=0) mais mon problème est lorsque j'exécute ma servlet une deuxième fois le n garde toujours la valeur 0 et le JOptionPane s'affiche toujours même si la ligne doit être insérée le n=0 l'empêche d'être insérée
Merci d'avance pour vos réponses
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
je ne comprend pas, mais essai de compléter le code avec else exemple
       else{
                JOptionPane.showMessageDialog(null, "Opération échoués", "Message", JOptionPane.ERROR_MESSAGE);
            }
0
imanebachiri
28 mai 2013 à 16:47
merci Fallpoint mais c'est pas ça mon problème voici ledoget de ma servlet :
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
HttpSession session=request.getSession();
Statement statement = null;
int SS= Integer.parseInt((session.getAttribute("ide")).toString());
String choix = request.getParameter("membre");
int matricule = Integer.parseInt((request.getParameter("matricule")).toString());
try {
i=0;


statement = connect.conn.createStatement();


// execute insert SQL stetement
i= statement.executeUpdate("INSERT INTO jurysoutenance VALUES('"+matricule+"','"+SS+"','"+choix+"' )" );


} catch (SQLException e) {

System.out.println(e.getMessage());

} finally {

if (statement != null) {
try {
statement.close();
} catch (SQLException ex) {
Logger.getLogger(Choisir_statut.class.getName()).log(Level.SEVERE, null, ex);
}
}

if (connect.conn != null) {
try {
connect.conn.close();
} catch (SQLException ex) {
Logger.getLogger(Choisir_statut.class.getName()).log(Level.SEVERE, null, ex);
}
}


}
if(i==1)
{
response.sendRedirect("page.jsp");
}

else if(i==0)
{ response.sendRedirect("erreur_insertion.jsp");
}

}

mon problème si à la première fois la ligne est insérée je me suis redirigée vers page.jsp et si j'execute ma servlet une deuxième fois je me suis redirigée une deuxième fois vers page.jsp même si la ligne n'est pas insérée dans la BD c'est comme si n garde toujours la valeur 1


Merci pour votre aide
0
imanebachiri
28 mai 2013 à 16:52
merci Fallpoint mais c'est pas ça mon problème voici ledoget de ma servlet :
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
HttpSession session=request.getSession();
Statement statement = null;
int SS= Integer.parseInt((session.getAttribute("ide")).toString());
String choix = request.getParameter("membre");
int matricule = Integer.parseInt((request.getParameter("matricule")).toString());
try {
i=0;


statement = connect.conn.createStatement();


// execute insert SQL stetement
i= statement.executeUpdate("INSERT INTO jurysoutenance VALUES('"+matricule+"','"+SS+"','"+choix+"' )" );


} catch (SQLException e) {

System.out.println(e.getMessage());

} finally {

if (statement != null) {
try {
statement.close();
} catch (SQLException ex) {
Logger.getLogger(Choisir_statut.class.getName()).log(Level.SEVERE, null, ex);
}
}

if (connect.conn != null) {
try {
connect.conn.close();
} catch (SQLException ex) {
Logger.getLogger(Choisir_statut.class.getName()).log(Level.SEVERE, null, ex);
}
}


}
if(i==1)
{
response.sendRedirect("page.jsp");
}

else if(i==0)
{ response.sendRedirect("erreur_insertion.jsp");
}

}

mon problème si à la première fois la ligne est insérée je me suis redirigée vers page.jsp et si j'execute ma servlet une deuxième fois je me suis redirigée une deuxième fois vers page.jsp même si la ligne n'est pas insérée dans la BD c'est comme si n garde toujours la valeur 1


Merci pour votre aide
0
Rejoignez-nous