2016-09-13 5 views
0

Ich habe versucht, eine Webseite mit Java zu entwickeln.Daten werden nicht in MySQL-Datenbank eingefügt

Das ist mein index.html:

<!DOCTYPE html> 
 
<html > 
 
    <head> 
 
    <meta charset="UTF-8"> 
 
    <title>Simple Dark Form</title> 
 
      <link rel="stylesheet" href="css/style.css"> 
 
    </head> 
 

 
    <body> 
 
<form action="../PatientRegistrationServlet" method="post"> 
 
    <link href='http://fonts.googleapis.com/css?family=Open+Sans:400,300,700' rel='stylesheet' type='text/css'> 
 
<link href='http://fonts.googleapis.com/css?family=Sofia' rel='stylesheet' type='text/css'> 
 
<div class='login'> 
 
    <h2>Register</h2> 
 
    <input name='First Name' placeholder='First Name' type='text'> 
 
    <input name='Last Name' placeholder='Last Name' type='text'> 
 
    <input name='ad1' placeholder='Address Line 1' type='text'> 
 
     <input name='Birthdate' placeholder='Birt date' type='text'> 
 
     <input name='ad2' placeholder='Address Line 2' type='text'> 
 
     <input name='Country' placeholder='Country' type='text'> 
 
    <input name='State' placeholder='State' type='text'> 
 
    <input name='city' placeholder='city' type='text'> 
 
    <input name='pcode' placeholder='Pincode' type='text'> 
 
    <input name='Blood group' placeholder='Blood group' type='text'> 
 
    <input name='Email' placeholder='E-Mail' type='text'> 
 
    <input name='Gender' placeholder='Gender' type='text' > 
 
     <input name='mobilno' placeholder='Mobile no' type='text'> 
 
     <input id='pw' name='pw' placeholder='Password' type='password'> 
 

 
<div class='agree'> 
 
    <input id='agree' name='agree' type='checkbox'> 
 
    <label for='agree'></label>Accept rules and conditions 
 
    </div> 
 
    <input class='animated' type='submit' value='Register' "> 
 
    <a class='forgot' href="../cpaneliclinix/login.jsp">Already have an account?</a> 
 
</div> 
 
    </form> 
 
      </body> 
 
</html>

Dies ist mein Java-Servlet-Seite Code:

package com.iclinix.controller; 

import java.io.IOException; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.SQLException; 
import java.sql.Statement; 

import javax.servlet.ServletException; 
import javax.servlet.annotation.WebServlet; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 


@WebServlet("/PatientRegistrationServlet") 
public class PatientRegistrationServlet extends HttpServlet { 
    private static final long serialVersionUID = 1L; 


    public PatientRegistrationServlet() { 
     super(); 
     // TODO Auto-generated constructor stub 
    } 

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    } 

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     String fname = request.getParameter("First Name"); 
     String lname = request.getParameter("Last Name"); 
     String addr1 = request.getParameter("ad1"); 
     String bd = request.getParameter("Birthdate"); 
     String addr2 = request.getParameter("ad2"); 
     String cntry = request.getParameter("Country"); 
     String st1 = request.getParameter("State"); 
     String ct = request.getParameter("city"); 
     String pc = request.getParameter("pcode"); 
     String bg = request.getParameter("Blood group"); 
     String mail= request.getParameter("Email"); 
     String gen = request.getParameter("Gender"); 
     String mno = request.getParameter("mobilno"); 
     String pass = request.getParameter("pw");  

      try { 
       Class.forName("com.mysql.jdbc.Driver"); 
       Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/iclinix","root","root"); 
       Statement st = con.createStatement(); 
       st.executeUpdate("INSERT INTO tbl_patient_registration (first_name, last_name, add1, birth_date, add2, country, state, city, pincode, bloodgroup, email, gender, mobileno, password)"+ "values('"+fname+"','"+lname+"','"+addr1+"','"+bd+"','"+addr2+"','"+cntry+"','"+st1+"','"+ct+"','"+pc+"','"+bg+"','"+mail+"','"+gen+"','"+mno+"','"+pass+"')"); 


      } catch (ClassNotFoundException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } catch (SQLException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
    } 

} 

Ich habe versucht, Einzelheiten der Registrierungsseite zu speichern, die gegeben ist durch Benutzer in Form in MySQL-Datenbank. MySQL-Datenbank ist damit verbunden.

Here is screenshot

Bildlink Everthing funktioniert gut, wenn ich mit nur drei Felder zu gehen versuchen, die Vornamen sind, Nachname und Passwort, aber wenn ich versuche mehr Felder hinzufügen und führen Sie es, wird nichts aktualisiert in die Datenbank. Es gibt keinen Fehler im Servlet.

Es funktioniert nur mit Vorname und Nachname. Kann mir bitte jemand helfen?

+0

Ich nehme an, dass keine Ausnahmen ausgelöst werden, benötigen Sie also eine Transaktion mit einem Commit? –

+0

ich weiß nicht im Grunde, was bedeutet es ,, wie ich neu in diesem Bereich bin .... –

+0

siehe diese Seite https://docs.oracle.com/javase/tutorial/jdbc/basics/transactions.html –

Antwort

0

Sie könnten versuchen, die folgenden:

String insertStatement = "INSERT INTO tbl_patient_registration (first_name, last_name, add1, birth_date, add2, country, state, city, pincode, bloodgroup, email, gender, mobileno, password) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; 
PreparedStatement pst = con.prepareStatement(insertStatement); 
pst.setString(1, fname); 
pst.setString(2, lname); 
pst.setString(3, addr1); 
pst.setDate(4, bd); // here I am guessing that the type of the column is date; if I am wrong use setString instead 

... // set the rest of the parameters here 

pst.setString(14, pass); 

pst.executeUpdate(); // execute the statement after setting the params 

Das ist besser als String-Verkettung, weil es

  • SQL-Injektion behandelt und
  • lesbar ist (mein Geschmack) und ist weniger fehleranfällig .

Wenn Sie weitere Informationen über die PreparedStatement Blick auf die JDBC tutorial.

+0

es funktioniert nicht.no..ist die ganze Servelts falsch oder es gibt etwas Problem mit anderen Scheißt. –

+0

n auch meine Datenbank funktioniert auch, da ich sie auf einem anderen Login-Servlets benutzt habe. –

+0

Sie können ein paar Dinge überprüfen: 1. Warum die Punkte ('..') in 'action =" ../ PatientRegistrationServlet "'? 2. debugge deinen Servlet-Code oder benutze 'System.out.println()' alle Parameter 3. Schaue in deine Log-Datei oder Konsole, wenn es Ausnahmen gibt. 4. Leerstellen sind in HTML-Eingabesteuerungsnamen erlaubt (wie 'Vorname '), aber ich würde sie entfernen; Verwenden Sie stattdessen Namen wie 'firstName'. Wenn es immer noch nicht klappt lass mich einen Kommentar und ich werde es heute Abend selbst ausprobieren. – ujulu

Verwandte Themen