Insérer les données dans la base de données mysql via JSP

Fermé
messiejessica - 6 mai 2014 à 22:17
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 6 mai 2014 à 22:38
Bonjour,

Je crée une application en java et je suis débutante et j'ai besoin de votre aide pour m'aider à avancer dans mon projet.
J'ai un formulaire et j'aimerai insérer les données dans ma base de donnée mysql. Et j'ai cette erreur: SEVERE: "Servlet.service()" pour la servlet jsp a généré une exception
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver.
Pourtant j'ai téléchagé mysql-connector.jar et j'ai toujours cette erreur. Aidez moi s'il vous plait. Merci.

Voici mon code:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
<code java>"http://www.w3.org/TR/html4/loose.dtd" > 
<%@ page import="java.sql.*" %> 
<%@ page import="java.io.*" %> 
<HTML>
<HEAD>
  <TITLE>insert data using prepared statement </TITLE>
</HEAD>
  <BODY bgcolor="#ffffcc">
  <font size="+3" color="green"><br>Welcome in www.roseindia.net !</font>
  <FORM action="InsertFormulaire.jsp" method="get">
    <TABLE style="background-color: #ECE5B6;" WIDTH="30%" >
         <TR>
              <TH width="50%">Name</TH>
                  <TD width="50%"><INPUT TYPE="text" NAME="name"></TD>
          </tr>
      <TR>
             <TH width="50%">City</TH>
                 <TD width="50%"><INPUT TYPE="text" NAME="city"></TD>
          </tr>
          <TR>
             <TH width="50%">Phone</TH>
                 <TD width="50%"><INPUT TYPE="text" NAME="phone"></TD>
          </tr>
                  <TR>
              <TH></TH>
                  <TD width="50%"><INPUT TYPE="submit" VALUE="submit"></TD>
          </tr>
   </TABLE>
<%
   String name = request.getParameter("name");
   String city = request.getParameter("city");
   String phone = request.getParameter("phone");
   /* Create string of connection url within specified 
   format with machine name, 
    port number and database name. Here machine name id 
    localhost and database name is student. */
    String connectionURL = "jdbc:mysql://localhost:3306/prospection";
          // declare a connection by using Connection interface 
    Connection connection = null;
        // declare object of Statement interface that uses for 
    
     PreparedStatement pstatement = null;
         // Load JBBC driver "com.mysql.jdbc.Driver"
     Class.forName("com.mysql.jdbc.Driver").newInstance();
          int updateQuery = 0;
     
         // check if the text box is empty
         if(name!=null && city!=null && phone!=null){
                         // check if the text box having only blank spaces
             if(name!="" && city!="" && phone!="") {
                         try {
              /* Create a connection by using getConnection()
              method that takes parameters of string type 
              connection url, user name and password to connect 
                to database. */
              connection = DriverManager.getConnection
              (connectionURL, "root", "");
                            // sql query to insert values in the secified table.
              String queryString ="INSERT INTO stu_info(Name, Address,Phone) VALUES (?, ?, ?)";
                      /* createStatement() is used for create statement
              object that is used for 
                sending sql statements to the specified database. */
              pstatement = connection.prepareStatement(queryString);
              pstatement.setString(1, name);
                          pstatement.setString(2, city);
                          pstatement.setString(3, phone);
              updateQuery = pstatement.executeUpdate();
                            if (updateQuery != 0) { %>
                   <br>
                   <TABLE style="background-color: #E3E4FA;" 
                   WIDTH="30%" border="1">
                      <tr><th>Data is inserted successfully 
                    in database.</th></tr>
                   </table>
              <%
              }
            } 
            catch (Exception ex) {
            out.println("Unable to connect to batabase.");
   
               }
            finally {
                // close all the connections.
                pstatement.close();
                connection.close();
            }
          }
        }
%>
  </FORM>
 </body> 
</html>

1 réponse

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
6 mai 2014 à 22:38
Bonsoir,

Tu dois faire un
Class.forName("com.mysql.jdbc.Driver");
pour charger la classe Driver dans le classpath.

Remarque : je te déconseilles de mettre tout ton code dans le fichier JSP ce n'est pas propre. Il vaut mieux utiliser une HttpServlet et n'utiliser la JSP que pour la présentation de la page, pas pour la manipulation des données.
1