2017-06-29 3 views
-1

Ich bin neu in Java web.I einfache Login-Seite schreiben möchten, die Daten einfügen, um MySql.When ich den Code alles laufen läuft in Ordnung, aber die Daten zu database.I eingefügt int gesucht ca. 2 Tage jetzt aber nicht lösen können it.Thanks für jede Hilfe Zuerst meine Datenbank-Klasse ist der Name MEINEDB und zweite ist server.Also meine ID ist AutoinkrementPreparedStatement nicht mit MySql funktioniert

#1 
Connection conn; 
public Connection getCon(){ 
    try { 
     Class.forName("com.mysql.jdbc.Driver"); 
     DriverManager.getConnection("jdbc:mysql://localhost:3306/sign_up", "root", "12345"); 
     System.out.println("connection is done"); 
    } catch (ClassNotFoundException ex) { 
     Logger.getLogger(MyDb.class.getName()).log(Level.SEVERE, null, ex); 
    } catch (SQLException ex) { 
     Logger.getLogger(MyDb.class.getName()).log(Level.SEVERE, null, ex); 
    } 

    return conn; 
} 
#2 
public class registr extends HttpServlet { 
    protected void processRequest(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException { 
    response.setContentType("text/html;charset=UTF-8"); 
    try (PrintWriter out = response.getWriter()) { 
     String name = request.getParameter("name"); 
     String username = request.getParameter("username") 
     String password = request.getParameter("password"); 
     String email = request.getParameter("email"); 
     MyDb db = new MyDb(); 
     Connection conn = db.getCon(); 
     conn.setAutoCommit(true); 
     String query = "INSERT INTO sign(name, surname, email, password)" + "VALUES(?, ?, ?, ?)"; 
     PreparedStatement stmt = conn.prepareStatement(query); 
     stmt.setString(1, name); 
     stmt.setString(2, username); 
     stmt.setString(3, password); 
     stmt.setString(4, email); 
     stmt.executeUpdate(query); 
    } catch (SQLException ex) { 
     Logger.getLogger(registr.class.getName()).log(Level.SEVERE,null,ex); 
    } 
} 
+1

Fügen Sie den Stacktrace – Jens

+0

Es gibt keine Code-Fehler ist – vusala

Antwort

0

ändern stmt.executeUpdate(query); zu stmt.executeUpdate();

+0

ich beide versucht, aber es hat nicht funktioniert für mich – vusala

0

Wenn Sie alle der Servletklasse Code geschrieben haben, dann sind Sie nicht etwas. Die offizielle Servlet-Schnittstelle ruft die Methode processRequest nicht automatisch auf. Hier ist ein Auszug aus der JavaDoc für die HttpServlet:

öffentlichen abstrakter Klasse HttpServlet erstreckt GenericServlet implementiert java.io.Serializable

Stellt eine abstrakte Klasse zu Unterklasse eines HTTP-Servlet geeignet für eine Website zu erstellen . Eine Unterklasse von HttpServlet muss mindestens eine Methode, in der Regel eines von diesem außer Kraft setzen:

doGet, if the servlet supports HTTP GET requests 
doPost, for HTTP POST requests 
doPut, for HTTP PUT requests 
doDelete, for HTTP DELETE requests 
init and destroy, to manage resources that are held for the life of the servlet 
getServletInfo, which the servlet uses to provide information about itself 

Es gibt fast keinen Grund, die Service-Methode außer Kraft zu setzen. Der Dienst verarbeitet Standard-HTTP-Anforderungen, indem er sie an die Handler-Methoden für jeden HTTP-Anforderungstyp weiterleitet (die oben aufgeführten doXXX-Methoden).

Also, was haben Sie zu tun ist, Servlets zu ändern, zum Beispiel, folgt als

public class registr extends HttpServlet { 
    public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { 
     processRequest(req, res); 
    } 

    public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { 
     processRequest(req, res); 
    } 

    protected void processRequest(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException  { 
     // your code 
    } 

} 

Tipp: Java-Codierung convetion besagt, dass der Name Ihrer Klassen sollten einen Großbuchstaben beginnen, dh statt registr sollte es Registr sein.

+0

Danke so viel, jetzt verstand ich – vusala

+0

Sie sind willkommen! – ujulu