2014-01-31 3 views
5

Ich versuche, Werte in die Tabelle der Datenbank mit Servlet und JSP und MySQL Workbench als Datenbank hinzufügen oder einfügen. Dies sind die folgenden Details:Einfügen von Daten in die Datenbank mit Servlet und JSP in Eclipse

1.>Register.java

package register.com; 

import java.io.IOException; 
import java.io.PrintWriter; 

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

import java.sql.*; 
import javax.servlet.*; 
/** 
* Servlet implementation class Register 
*/ 
@WebServlet("/register") 
public class Register extends HttpServlet { 
private static final long serialVersionUID = 1L; 

/** 
* @see HttpServlet#HttpServlet() 
*/ 
public Register() { 
    super(); 
    // TODO Auto-generated constructor stub 
} 

    /** 
    * @see Servlet#init(ServletConfig) 
    */ 
    public void init(ServletConfig config) throws ServletException { 
     // TODO Auto-generated method stub 
    } 

    /** 
    * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response) 
    */ 
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     // TODO Auto-generated method stub 
    } 

    /** 
    * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 
    */ 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     // TODO Auto-generated method stub 
    } 

    /** 
    * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 
    */ 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     // TODO Auto-generated method stub 


      response.setContentType("text/html"); 
      PrintWriter pw = response.getWriter(); 
      //String connectionURL = "jdbc:mysql://127.0.0.1:3306/newData";// newData is the database 
      //Connection connection; 
      Connection conn=null; 
      String url="jdbc:mysql://localhost:3306/"; 
      String dbName="userlogindb"; 
      String driver="com.mysql.jdbc.Driver"; 
     //String dbUserName="root"; 
     //String dbPassword="root"; 

     try{ 
      String Fname = request.getParameter("fname"); 
      String Mname = request.getParameter("mname"); 
      String Lname = request.getParameter("lname"); 
      String Uname = request.getParameter("username"); 
      String Emailid = request.getParameter("emailid"); 
      String Mobno = request.getParameter("mobno"); 
      String Address = request.getParameter("address"); 
      String Password1 = request.getParameter("password1"); 
      String Password2 = request.getParameter("password2"); 

      Class.forName(driver).newInstance(); 
      conn = DriverManager.getConnection(url+dbName,"root", "root"); 
      PreparedStatement pst =(PreparedStatement) conn.prepareStatement("insert into 'userlogindb'.'registerutable'(fname,mname,lname,username,emailid,mobno,address,password1,password2) values(?,?,?,?,?,?,?,?,?)");//try2 is the name of the table 

      pst.setString(1,Fname); 
      pst.setString(2,Mname);   
      pst.setString(3,Lname); 
      pst.setString(4,Uname); 
      pst.setString(5,Emailid); 
      pst.setString(6,Mobno); 
      pst.setString(7,Address); 
      pst.setString(8,Password1); 
      pst.setString(9,Password2); 


      int i = pst.executeUpdate(); 
      conn.commit(); 
      String msg=" "; 
      if(i!=0){ 
      msg="Record has been inserted"; 
      pw.println("<font size='6' color=blue>" + msg + "</font>"); 


      } 
      else{ 
      msg="failed to insert the data"; 
      pw.println("<font size='6' color=blue>" + msg + "</font>"); 
      } 
      pst.close(); 
     } 
     catch (Exception e){ 
      pw.println(e); 
     } 

} 

} 

2.>index.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"     "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Insert title here</title> 
</head> 
<body> 
<form name="registrationform" action="register" method="post"> 
<p> 
Enter your first name: <input type="text" name="fname"><br> 
Enter your middle name: <input type="text" name="mname"><br> 
Enter your last name: <input type="text" name="lname"><br> 
</p><br> 
<p> 
Enter username: <input type="text" name="username"><br> 
</p><br> 
<p> 
Enter email id: <input type="text" name="emailid"><br> 
Enter mobile number: <input type="text" name="mobno"><br> 
Enter address: <textarea rows="5" cols="5" name="address"></textarea><br> 
</p><br> 
<p> 
Enter the password: <input type="password" name="password1"><br> 
Reenter the password: <input type="password" name="password2"><br> 
</p><br> 
<p> 
<input type="submit"> 
</p><br> 
</form> 
</body> 
</html> 

3.>web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> 
<display-name>RegisterExample</display-name> 
<welcome-file-list> 
<welcome-file>index.html</welcome-file> 
<welcome-file>index.htm</welcome-file> 
<welcome-file>index.jsp</welcome-file> 
<welcome-file>default.html</welcome-file> 
<welcome-file>default.htm</welcome-file> 
<welcome-file>default.jsp</welcome-file> 
</welcome-file-list> 
<servlet> 
<description>Register Servlet</description> 
<display-name>Register</display-name> 
<servlet-name>Register</servlet-name> 
<servlet-class>register.com.Register</servlet-class> 
</servlet> 
<servlet-mapping> 
<servlet-name>Register</servlet-name> 
<url-pattern>/register</url-pattern> 
</servlet-mapping> 
</web-app> 

4.>Ich habe mysql-connector-java-5.0.8-bin.jar und servlet-api-3.0.jar hinzugefügt ist alles andere, um es hinzuzufügen. Ich habe eine Verbindung zur Datenbank im Datenquellenexplorer erstellt.

Wenn ich kompilieren oder debuggen zeigt es keinen Fehler. Zur Laufzeit gibt es auch keinen Fehler. Wenn ich das Formular ausfüllen und abschicken zeigt nur leeren Bildschirm :( keine Ausgabe angezeigt wird. :( auch in dem Datenbankwert.

Bitte helfen Sie mir nicht mehr aktualisiert. Ich bin mit diesem Snippet Kater zu bekommen.

+0

läuft Ihr MySQL-Server? –

+0

Verwenden Sie die print() - Methode anstelle von println() und schließen Sie die Pw. – Rahul

+0

ja mysql server läuft Kazekage Gaara – Atiq

Antwort

2

überprüfen Sie, ob doPost() Methode der Servlet aufgerufen wird von der jsp Form und entfernen conn.commit.

+0

Yess Niks Tyagi Sir, Sie sind korrekt Programm erfolgreich ausgeführt. – Atiq

0

können Sie überprüfen Wert von i durch Logger oder println setzen(). und prüfen Sie mit dem Schließen db conn am Ende. Gönnen Sie Ihren Code sieht gut aus und es sollte funktionieren.

+0

Gautam Savaliya Ich habe ich die print-Anweisung hinzugefügt, aber es zeigt nichts – Atiq

0

Gleiches Problem fetch Hauptproblem in PreparedStatement Verwenden Sie einfache Anweisung, dann fügen Sie erfolgreich Datensatz gleichen Verwendungszweck unten.

String st2="insert into 
user(gender,name,address,telephone,fax,email, 
    destination,sdate,edate,Participant,hcategory, 
    Culture,Nature,People,Cities,Beaches,Festivals,username,password) 
values('"+gender+"','"+name+"','"+address+"','"+phone+"','"+fax+"', 
     '"+email+"','"+desti+"','"+sdate+"','"+edate+"','"+parti+"', 
     '"+hotel+"','"+chk1+"','"+chk2+"','"+chk3+"','"+chk4+"', 
     '"+chk5+"','"+chk6+"','"+user+"','"+password+"')"; 


int i=stm.executeUpdate(st2); 
0

In JSP in Zeile <form> Tag, versuchen diesen Code

<form name="registrationform" action="Register" method="post"> 
+0

Einschließlich 4 Leerzeichen vor dem Codebeispiel wird der Code in einem Codeblock angezeigt.Im Fall von HTML-Tags, wenn Sie das Tag nicht enthalten, ist ein Code-Block nicht sichtbar und Ihre Antwort kann gelöscht werden, wenn sie scheinbar keinen Code enthält. – Kara

0
String user = request.getParameter("uname"); 
out.println(user); 
String pass = request.getParameter("pass"); 
out.println(pass); 
Class.forName("com.mysql.jdbc.Driver"); 
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/rental","root","root") ; 
out.println("hello"); 
Statement st = conn.createStatement(); 
String sql = "insert into login (user,pass) values('" + user + "','" + pass + "')"; 
st.executeUpdate(sql); 
0

Entfernen conn.commit von Register.java

In Ihrer jsp Änderung Aktion: <form name="registrationform" action="Register" method="post">

0

ich hatte ein ähnliches Problem und konnte es lösen, indem identifizieren welchen JDBC-Treiber ich verwenden wollte. In meinem Fall stellte ich eine Verbindung zu einer Oracle-Datenbank her. Ich habe die folgende Anweisung vor dem Erstellen der Verbindungsvariablen platziert.

DriverManager.registerDriver (neues oracle.jdbc.driver.OracleDriver());

Verwandte Themen