Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    23

    Inserire Dati In Database Tramite Servlet

    Ciao a tutti,
    sono alle prime armi con le servlet java e le pagine jsp. Ho creato una pagina jsp con un form per la registrazione di un utente. Al submit del form richiamo una servlet che dovrebbe permettermi di inserire i dati prelevati dal form nella tabella UTENTI di un database.
    L'inserimento però non viene effettuato e non riesco a capire dov'è il problema.
    Di seguito vi riporto il codice della servlet
    codice:
    public class Register extends HttpServlet {
            protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
            response.setContentType("text/html;charset=UTF-8");
            PrintWriter out = response.getWriter();
            Connection conn=null;
            Statement s=null;
            ResultSet rs=null;
            String reg_exp;
            PreparedStatement ps=null;
            try {
                String name=request.getParameter("name");
                String surname=request.getParameter("surname");
                String address=request.getParameter("address");
                String city=request.getParameter("city");
                String cap=request.getParameter("CAP");
                String phone=request.getParameter("phone");
                String mail=request.getParameter("mail");
                String conf_mail=request.getParameter("confirm_mail");
                String usr=request.getParameter("user");
                String psw=request.getParameter("password");
                 String conf_psw=request.getParameter("confirm_password");
                if(usr.isEmpty())
                    void_element.add("username");
                if(psw.isEmpty())
                    void_element.add("password");
                else if(psw.compareTo(conf_psw)!=0)
                    not_correspond.add("password");
                else{
                    conn=Db_operation.Db_connection.getConnection();
                    s=conn.createStatement();
                    rs=s.executeQuery("SELECT * FROM UTENTI WHERE username='"+usr+"' OR password='"+psw+"'");
                    if(!rs.next()){
                        //se username e password scelti non sono già stati selezionati
                        //e tutti gli elementi richiesti nel form sono stati inseriti correttamente
                        //viene visualizzata la pagina dell'utente con iul suo menu
                        if(void_element.isEmpty() && error_element.isEmpty() && not_correspond.isEmpty()){
                            session.setAttribute("currentSessionUser",usr);
                            //aggiungo l'utente
                            String query="INSERT INTO UTENTI VALUES(?,?,?,?,?,?,?,?,?,?,?)";
                            ps=conn.prepareStatement(query);
                            ps.setString(1, "user");
                            ps.setString(2, name);
                            ps.setString(3, surname);
                            ps.setString(4, mail);
                            ps.setString(5, address);
                            ps.setString(6, city);
                            ps.setString(7, sex);
                            ps.setString(8, code);
                            ps.setString(9, phone);
                            ps.setString(10, usr);
                            ps.setString(11, psw);
                            int nrow=ps.executeUpdate();
                            if(nrow>0){
                                session.setAttribute("roleSession", "user");
                                response.sendRedirect("index.jsp");
                            }else{
                                session.setAttribute("NotAdd", "non aggiunta riga");
                                response.sendRedirect("register_page.jsp");
                            }
                        }
                    }
                    else{
                        request.setAttribute("duplicate", "true");
                        response.sendRedirect("register_page.jsp");
                    }
                }
            }catch(SQLException sqle){
                sqle.getMessage();
            }catch(ClassNotFoundException cne){
                cne.getMessage();
            }
            finally {
                out.close();
            }
        }
    Questo invece è il codice di DB_operation.db_connection

    codice:
    public class Db_connection {
    
        public static Connection getConnection() throws ClassNotFoundException, SQLException{
            Connection conn=null;
            try{
            
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection("jdbc:mysql://localhost/db_auction?user=db_auction&password=test");
            }catch(ClassNotFoundException e){
                e.getMessage();
            }catch(SQLException se){
                se.getMessage();
            }
            return conn;
        }
    }
    Qualcuno mi può aiutare.
    Grazie in anticipo

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    hai controllato se viene lanciata qualche eccezione?

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    23
    In effetti solleva una SQLEXception :Column count doesn't match value count at row 1.
    Modificando la query come segue
    "INSERT INTO UTENTI(ruolo, nome, cognome,mail,indirizzo, città, sesso, codice_fiscale, telefono, username, password) VALUES(?,?,?,?,?,?,?,?,?,?,?)"
    ed effetuando controlli sui dati ora sono riuscita a fare l'inserimento
    Grazie della dritta, non ci avevo pensato subito, e mi è stata preziosa.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.