IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

Développement Java avec SQL


Sujet :

JDBC Java

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 181
    Points : 64
    Points
    64
    Par défaut Développement Java avec SQL
    je suis entrain de développer une application java (des servlet et des interface.jsp) alors j'utilise sql comme SGBD, à travers les interface j'accède à la base de données. je veux effectuer un traitement de modification d'une ligne précise de la base ,, vous pouvez m'aider à récupérer l'indice de la ligne pour la fait comparer avec la base ? merci

    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
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
     <% 
                          String url = "jdbc:mysql://localhost/etap";
                    String login = "root";
    		String passwd = "root";
    		java.sql.Connection cn = null;
    		java.sql.Statement st = null;
     
     
    			try {
    				Class.forName("com.mysql.jdbc.Driver");
    				cn = DriverManager.getConnection(url, login, passwd);
    				st = cn.createStatement();
    				String queryString = "Select * FROM banque";
    				ResultSet res = st.executeQuery(queryString);
     
                                    out.println("<body background='im.png' >");
     
                                   out.println( "<table border= 1>" );
     
     
    				ResultSetMetaData resMeta = (ResultSetMetaData) res.getMetaData();
     
    				int nbCols = resMeta.getColumnCount();
     
    				out.println( "<tr>" );
    				for( int i = 1; i <= nbCols; i++ )
    				{
    					String el = resMeta.getColumnLabel( i );
                                            out.println( "<th>" + el + " </th>" );
     
    				}
                                     String mod ="Modifier";
                                     String supp="Supprimer";
                                    out.println( "<th>" + mod+ " </th>" );
                                    out.println( "<th>" +supp + " </th>" );
    				out.println( "</tr>" );
     
    				while( res.next() )
    				{
    					out.println( "<tr >" );
    					for( int i = 1; i <= nbCols; i++ )
    					{
    						String el = res.getString( i );
    						out.println( 
                                                    "<td>" + el + " </td>");
                                            }
                                            out.println("<form action=''>");
                                            out.println( "<TD>" + "<input type=\"button\" value=\"Modfier\" />");
                                            out.println("</form>");
                                            out.println("<form action=''>") ;      
                                            out.println( "<TD>" + "<input type=\"button\" value=\"Supprimer\" />");
    					out.println("</form>") ; 
                                            out.println( "</tr>" );
    				}
     
    				out.println( "</table><br/>" );
    				//out.println ( "Requête: " + queryString + "<br/>" );
     
                                    out.print("<br>");
                                    out.print("<table>");
                                     out.print("<tr>");
                                      out.print("<td>");
                                      out.print("<form action='ajou_Banque_ETAP.jsp'>");
                                      out.print(" <input type='submit' value='Ajouter une nouvelle Banque' style='width: 200px; height: 50px'/>");
                                      out.print("</form>");
                                      out.print("</td>");
                                      out.print("</tr>");
                                      out.print("</table>");
     
                           }
     
     
    			catch( SQLException ex ) 
    			{
    				System.out.println ( "<p><pre>" );
    				while( ex != null )
    				{
    					out.println( "Message : " + ex.getMessage () );	        
    					out.println( "Etat : " + ex.getSQLState () );             
    					out.println( "Code d'erreur : " + ex.getErrorCode () );  
    					ex = ex.getNextException();                                  
    				}
    				out.println ( "</pre></p>" );                                
            } finally {            
                out.close();
            }
     
                         %>
    maintenant je veux que j'ajoute une action sur le bouton supprimer pour qu'il me permet de supprimer la ligne courante

    aidez moi s'il vous plait
    merci d'avance

  2. #2
    Membre expérimenté Avatar de nathieb
    Homme Profil pro
    DevOps
    Inscrit en
    Mai 2004
    Messages
    1 058
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : DevOps
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 058
    Points : 1 532
    Points
    1 532
    Par défaut Rien compris
    Bonjour,

    1/Il existe la balise [#] pour insérer du code.

    2/Quand on copie du code on essaye de comprendre ...

    3/ sql est un langage de requête, pas une base de donnée.

    4/ sur un base, on ne teste jamais root, et on affiche pas les mots de passe ...

    Sinon quel est la structure de ta table ????

    Olivier
    Architecte destructurant,
    be cool, be free

    Il nous reste Debian bien sûr

  3. #3
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 181
    Points : 64
    Points
    64
    Par défaut
    j'ai déjà afficher toute une table de la base de données sur une page jsp avec ces différentes lignes
    et à chaque ligne, j'ai mis un bouton supprimer
    c'est que je veux dire ,
    je vais maintenant ajouter une action au niveau de ce bouton pour permettre de supprimer la ligne courante

    j'ai alors affiché le code de la page .jsp et ma servlet
    le résultat c'est que toutes les lignes sont effacées
    aidez moi s'il vous plait

  4. #4
    Membre expérimenté Avatar de nathieb
    Homme Profil pro
    DevOps
    Inscrit en
    Mai 2004
    Messages
    1 058
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : DevOps
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 058
    Points : 1 532
    Points
    1 532
    Par défaut balise suppression
    Bonjour,

    C'est étrange, il n'a pas d'action dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    out.println("<form action=''>") ;                                             
    out.println( "<TD>" + "<input type=\"button\" value=\"Supprimer\" />");
    Dans la balise form, l'action est nulle, donc rien ne se passe, tu appelles le même fichier, pourtant il n'y a pas de suppression genre sql=> delete from .... ?
    Olivier
    Architecte destructurant,
    be cool, be free

    Il nous reste Debian bien sûr

  5. #5
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 181
    Points : 64
    Points
    64
    Par défaut Bonsoir
    j'ai essayé avec ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    try {
    				Class.forName("com.mysql.jdbc.Driver");
    				cn = DriverManager.getConnection(url, login, passwd);
    				st = cn.createStatement();
    				String queryString = "Select * FROM banque";
    				ResultSet res = st.executeQuery(queryString);
                                   int position=0;
                                    while(res.next()) {position++;}

    puis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     out.println("<form action='supp/ligne='"+position+"'>") ;      
                                            out.println( "<TD>" + "<input type=\"submit\" value=\"Supprimer\" />");
    					out.println("</form>") ;

    au niveau de la servlet supp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     try {
     
                 Class.forName("com.mysql.jdbc.Driver").newInstance();
                    Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/etap","root","root");
                    Statement st= con.createStatement();
                    int rs=st.executeUpdate("delete from banque");
                    if (rs!=0)
                    {out.print("hggh");
                    }
            } finally {            
                out.close();
            }

    mais ça marche pas!! cette maniéré supprime toutes les ligne, car au niveau du servlet je sais pas comment je précise la ligne courante

  6. #6
    Membre expérimenté Avatar de nathieb
    Homme Profil pro
    DevOps
    Inscrit en
    Mai 2004
    Messages
    1 058
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : DevOps
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 058
    Points : 1 532
    Points
    1 532
    Par défaut suppression par ligne
    Bonjour,

    Dans ta servlet d'affichage, tu dois récupérer l'id de la ligne afin de l'envoyer à la servlet de suppression
    Il faut que ton delete soit de la forme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <div style="text-align: left;"> delete from banque where id = ??? ton paramètre que tu envoies pas le formulaire
    </div>
    Evidemment; delete from banque sans condition efface tout ... oups

    Olivier
    Architecte destructurant,
    be cool, be free

    Il nous reste Debian bien sûr

  7. #7
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 181
    Points : 64
    Points
    64
    Par défaut Bonsoir
    Désolé
    j'ai pas compris qu'est ce que je dois faire pour corriger mes fautes
    vous pouvez m'expliquez?
    merci

  8. #8
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 181
    Points : 64
    Points
    64
    Par défaut
    Bon d’après ce que vous m'avez conseillé , j'ai essayé avec ça

    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
     
    while( res.next() )
    				{ int position=0; 
                                     position++;
    					out.println( "<tr >" );
    					for( int i = 1; i <= nbCols; i++ )
    					{
    						String el = res.getString( i );
    						out.println( 
                                                    "<td>" + el + " </td>");
                                            }
     
                                            out.println("<form action=''>");
                                            out.println( "<TD>" + "<input type=\"button\" value=\"Modfier\" />");
                                            out.println("</form>");
                                           out.println("<form action='supp'>") ;      
                                            out.println( "<TD>" + "<input type=\"submit\" value=\"Supprimer\" />");
    					out.println("</form>") ;


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
     {
                int p= Integer.parseInt(request.getParameter("position"));
     
                 Class.forName("com.mysql.jdbc.Driver").newInstance();
                    Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/etap","root","root");
                    Statement st= con.createStatement();
                    int rs=st.executeUpdate("delete from banque where code_banque= "+p+"");

    mais ça marche pas aussi

  9. #9
    Membre expérimenté Avatar de nathieb
    Homme Profil pro
    DevOps
    Inscrit en
    Mai 2004
    Messages
    1 058
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : DevOps
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 058
    Points : 1 532
    Points
    1 532
    Par défaut bonjour
    Bonjour,

    Il faut que tu apprennes à afficher les paramètres qur tu envoies et que tu reçois de ta page.

    ton form action='supp' il doit envoyer quoi ?
    la clef de la ligne que tu dois effacer non ?

    donc je vois plus une truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <form action='supp?clef=' "+p+" ' ....
    Tu fais mettres en places des logs pour afficher ce qui se passe .
    exemple System.out.println(......)
    ou mieux encore passer par Log4J.

    Rappel HTML : D'une page web, tu peux envoyer des données en GET ou POST.

    Olivier
    Architecte destructurant,
    be cool, be free

    Il nous reste Debian bien sûr

Discussions similaires

  1. Tutoriel sur le développement Java avec Cassandra 2
    Par Mickael Baron dans le forum NoSQL
    Réponses: 0
    Dernier message: 16/02/2015, 20h41
  2. Réponses: 7
    Dernier message: 15/06/2009, 11h59
  3. Réponses: 3
    Dernier message: 07/11/2008, 10h41
  4. Requête SQL de base sous java avec Hibernate
    Par ritchie23 dans le forum JDBC
    Réponses: 0
    Dernier message: 29/10/2008, 09h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo