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

Servlets/JSP Java Discussion :

Insertion dans une BDD + JSP


Sujet :

Servlets/JSP Java

  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2010
    Messages : 130
    Par défaut Insertion dans une BDD + JSP
    Bonjour,

    Je fais une application web sous eclipse qui fait des entrées dans une BDD.

    j'ai fais donc un code pour me connecter a ma base

    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
    package connexion;
    import java.sql.*;
     
    public class DBConnexion {
        public Connection con;
        public Statement s;
     
        public DBConnexion(){
          try {
    	      con=null;
    	      con=DriverManager.getConnection(
    	        "jdbc:oracle:thin:@localhost:1521:...","..","..");
    	      s=con.createStatement(); 
          } 
          catch(Exception e)
          {
        	  e.printStackTrace();
          }
        }
     
        public void executeRequete(String requete){
            try {
            	s.execute(requete);
            } 
            catch(SQLException e)
            {
            	e.printStackTrace();
            }
        }
     
        public ResultSet recupereRequete(String requete) throws SQLException{
            return s.executeQuery(requete);
        }
     
        public void closeConnexion(){  
          try {
            s.close();
            con.close();
          } 
          catch(SQLException e)
          {
        	  e.printStackTrace();
          }
        }
    }
    Et dans ma page Jsp j'ai fais ça.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    	   <td><select name = "unite" id = "unite" style="width : 150px"> 
    							<option value = -1>------------------unité----------------</option>
    						<% 
                                                            DBConnexion dbc_unite = new DBConnexion();
                                                            String sql_unite = "SELECT nom_unite FROM unite ORDER BY nom_unite";
                                                            ResultSet resultat_unite = dbc_unite.recupereRequete(sql_unite);
                                                            while(resultat_unite.next())
                                                            {
                                                                    out.print("<option>"+resultat_unite.getString("nom_unite")+"</option>");
                                                            }
                                                            dbc_unite.closeConnexion();
                                                    %>
    						</select></td>
    Mais il me dit que sa marche pas quand il exécute la methode recupereRequete(). Je comprend pas du tout.

  2. #2
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2010
    Messages : 130
    Par défaut
    Pourtant jai inclus le driver dans les librairies de mon projet.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2009
    Messages : 38
    Par défaut
    Salut,

    je vois pas ou tu charges le pilote de ta DB?

    En gros, ce qu'il faut que tu fasses:

    -charger le pilote (Class.forName("...."))
    -récupérer les paramètres de connexion depuis ton jsp (request.getParameter)
    -faire la connexion: DriverManager.getConnection(url, user, pwd)

    après tu dispatch ou tu veux...

    Have fun... je suis passé par là il y a pas longtemps, c'est pas facile d'obtenir des réponses sur ce forum, voici pourquoi je te répond, hésites pas si tu as d'autres questions.

  4. #4
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2010
    Messages : 130
    Par défaut
    Merci bien.

    J'ai réussi a me connecter sans problème, ma requête fonctionne bien mais je voudrais que le résultat celle-ci soit afficher dans un tableau. Je vois pas comment faire. J'ai vu qu'il faut que j'utilise JTable mais je sais pas comment tout cela marche.

  5. #5
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2010
    Messages : 130
    Par défaut
    J'ai changer de méthode de méthode pour faire mon tableau j'ai utilisé un simple tableau html qui je rempli par requête.

    Code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    out.print("<TABLE BORDER=1 width='100%'><TR><TH>col1</TH><TH>col2</TH><TH>col3</TH><TH>col4</TH><TH width='25%'>col5</TH><TH>col6</TH></TR>");
    PeparedStatement pstmt_donnee = dbc.prepareStatement("....");
    pstmt_donnee.setString(1, donnee);		
    ResultSet resultat_donnee = pstmt_donnee.executeQuery();
    while (resultat_donne.next())
    {
    	out.print("<TR><TD>"+donnee+"</TD><TD>"+resultat_donnee.getString("col2")+"</TD><TD>"+resultat_col3.getString("col4")+"</TD><TD>"+resultat_donnee.getString("col5")+"</TD><TD>"+resultat_donnee.getString("col6")+"</TD></TR>");
    }
    out.print("</TABLE>");

    Mais je voudrai que ce tableau soit dans ma page JSP. Je ne sais pas comment faire, j'ai beau chercher sur le net mais sans succès.

  6. #6
    Membre éclairé Avatar de lastrecrue
    Développeur Java
    Inscrit en
    Février 2006
    Messages
    360
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2006
    Messages : 360
    Par défaut
    Tu pourrais le faire en JSTL ... Si non tu peu essayer ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <% while (resultat_donne.next())
     
    { %>
    <%= (String)request.getAttribute("nom") %>
    <TR>
    <TD><%= donnee %></TD>
    <TD><%=resultat_donnee.getString("col2")%></TD>
    <TD><%=resultat_col3.getString("col4")%></TD>
    <TD><%=resultat_donnee.getString("col5")%></TD>
    <TD><%=resultat_donnee.getString("col6")%></TD>
    </TR>
    <% } %>

  7. #7
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2010
    Messages : 130
    Par défaut
    Moi ce que j'ai fais C'est une page recherche.jsp

    La personne choisi sont critere de selectionne, dès que ceci est fait elle valider. En validant sa fait appelle a ma servlet qui fait comme traitement ce que je t'ai envoyer. Mais je voudrai que ce tableau soit dans ma page rechercher.

    Car ce que tu m'a envoyer je vois pas très bien comment mon tableau pourra etre dans ma page jsp. Ou alors c'est que je l'ai mal compris.

  8. #8
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Il faudrait que ta servlet charge un objet List et qu'elle l'enregistre comme attribut de la requête pour que la page jsp puisse l'utiliser.
    Ça ressemblerait à ceci :

    La servlet
    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
     
    package test;
     
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    public class Servlet1 extends HttpServlet
    {
        private static final long serialVersionUID = 1;
     
        @Override
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
        {
            List<List<String>> list = new ArrayList<List<String>>();
            for (int i = 0; i < 10; i++)
            {
                List<String> record = new ArrayList<String>();
                for (int j = 0; j < 5; j++)
                {
                    record.add("ligne " + i + ", colonne " + j);
                }
                list.add(record);
            }
            request.setAttribute("Liste", list);
            request.getRequestDispatcher("/resultatOK.jsp").forward(request, response);
        }
    }
    La page jsp
    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
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <%@ page contentType="text/html; charset=ISO-8859-1" %>
     
    <%@page import="java.util.List"%>
    <%@page import="java.util.Iterator"%><html>
     
    <body>
    <%
    List<List<String>> list = (List<List<String>>)request.getAttribute("Liste");
    Iterator it = list.iterator();
    out.write("<table border='1'>");
    while (it.hasNext())
    {
        List<String> record = (List<String>)it.next();
        Iterator it2 = record.iterator();
        out.write("<tr>");
        while (it2.hasNext())
        {
            out.write("<td>" + it2.next() + "</td>");
        }
        out.write("</tr>");
    }
    out.write("</table>");
    %>
    </body>
    </html>
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2010
    Messages : 130
    Par défaut
    Dans ce cas la elle interviens ou ma requete SQL?

  10. #10
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Et bien dans la servlet, à la place de ma construction de liste bidon...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  11. #11
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2010
    Messages : 130
    Par défaut
    Et c'est le resultat de ma requête que je doit mettre dans l'objet list, si j'ai bien compris

  12. #12
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Tout à fait.

    Voici un autre exemple avec une DB, tu peux t'en inspirer pour créer une méthode générique qui construit cette liste en lui passant la requête à exécuter.
    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
     
            List<List<String>> list = new ArrayList<List<String>>();
            Connection connection = null;
            try
            {
                Class.forName("com.mysql.jdbc.Driver");
                connection = DriverManager.getConnection("jdbc:mysql:///db", "user", "password");
                Statement stmt = connection.createStatement();
                ResultSet rs = stmt.executeQuery("select * from utilisateur");
                ResultSetMetaData rsmd = rs.getMetaData();
                while (rs.next())
                {
                    List<String> record = new ArrayList<String>();
                    for (int i = 0; i < rsmd.getColumnCount(); i++)
                    {
                        record.add(rs.getString(i+1));
                    }
                    list.add(record);
                }
                request.setAttribute("Liste", list);
                request.getRequestDispatcher("/resultatOK.jsp").forward(request, response);
            }
            catch (Exception e)
            {
                // Catch
            }
            finally
            {
                if (connection != null)
                {
                    try
                    {
                        connection.close();
                    }
                    catch (Exception e)
                    {
     
                    }
                }
            }
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  13. #13
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2010
    Messages : 130
    Par défaut
    OKi merci je vais me baser dessus

    J'ai une petit question c'es possible que dans ce tableau en cliquant sur une des lignes que je puisse allez sur une page JSP en passer des attributs?

  14. #14
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Bien sûr, il suffit de générer le code adéquat dans ta page JSP.
    En supposant que la clé est en position 0 dans la liste, tu peux faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    while (it2.hasNext())
    {
        out.write("<td onclick=\"callDetailFor('" + record.get(0) + "')>" + it2.next() + "</td>");
    }
    avec une méthode javascript définie comme ceci (dans la partie <head>)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <script type="text/javascript">
    function callDetailFor(id)
    {
        alert(id); // <---- Mettre ici l'appel qui va bien
    }
    </script>
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  15. #15
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2010
    Messages : 130
    Par défaut
    Je n'arrive pas a utiliser tes listes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Iterator it = list.iterator();
    ne fonctionne pas

  16. #16
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Tu veux dire quoi par "ça ne fonctionne pas" ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  17. #17
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2010
    Messages : 130
    Par défaut
    sa plante a cette ligne

  18. #18
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Peux-tu montrer le code ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  19. #19
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2010
    Messages : 130
    Par défaut
    Voila
    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
    <form name = "rechAffaire" method ="post" action="/AppRevege/rechAff">
    	<fieldset>
    		<legend>Rechercher par n°affaire</legend><br />
    			<span>n°Affaire :</span> <select name="affaire" id="affaire" style = "width: 120px">			
    			<option value = -1>-------n°affaire-------</option>
    			<%
                                    DBConnexion dbc_aff = new DBConnexion();
                                    String sql_aff = "SELECT num_affaire FROM numero_aff ORDER BY num_affaire";
                                    ResultSet resultat_aff = dbc_aff.recupereRequete(sql_aff);
                                    while(resultat_aff.next())
                                    {
                                            out.print("<option value = "+resultat_aff.getString("num_affaire")+">"+resultat_aff.getString("num_affaire")+"</option>");
                                    }
                                    dbc_aff.closeConnexion();
     
                            %>
    			</select>	
    			<%
                                    List<List<String>> list = (List<List<String>>)request.getAttribute("Liste");
                                    Iterator it = list.iterator();
                                    out.write("<TABLE BORDER=1 width='100%'><TR><TH>N°Affaire</TH><TH>N°CTV</TH><TH>N°CCS</TH><TH>N°</TH><TH>Type Voie</TH><TH width='25%'>Nom Voie</TH><TH>CP</TH></TR>");
                                    while (it.hasNext())
                                    {
                                        List<String> record = (List<String>)it.next();
                                        Iterator it2 = record.iterator();
                                        out.write("<tr>");
                                        while (it2.hasNext())
                                        {
                                            out.write("<td>" + it2.next() + "</td>");
                                        }
                                        out.write("</tr>");
                                    }
                                    out.write("</table>");
                            %>
     
    	</fieldset>
    </form>
     
    <center><img
    	src="images/valider.png"
    	onmouseover="this.src='images/validerhover.png';"
    	onmouseout="this.src='images/valider.png';"
    	onclick="document.getElementById('rechAffaire').submit();"
    /></center>

  20. #20
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    C'est un peu normal, tu as copier le code sans réfléchir...
    Dans ton cas, la liste ne vient pas par le request, tu la génères dans la page.
    Il faut donc remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    List<List<String>> list = (List<List<String>>)request.getAttribute("Liste");
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    List<List<String>> list = new ArrayList<List<List<String>>();
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. [Wamp] Insertion dans une bdd sur laptop
    Par beencss dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 7
    Dernier message: 08/02/2007, 15h59
  2. [debutant] requete "insert" dans une page jsp
    Par el_bassir dans le forum JDBC
    Réponses: 2
    Dernier message: 31/08/2006, 18h13
  3. [VB6/mysql]:Problème d'insertion dans une bdd
    Par gaetan.tranvouez dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 14/06/2006, 10h15
  4. [Conception] Pb d insertion dans une BDD des données d un formulaire
    Par xtiand4 dans le forum PHP & Base de données
    Réponses: 16
    Dernier message: 02/06/2006, 18h18
  5. [debutant]insertion dans une BDD
    Par EssaiEncore dans le forum ASP
    Réponses: 7
    Dernier message: 10/02/2005, 14h58

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