Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2012
    Messaggi
    2

    Postgres e Netbeans inserimento dati nel db

    Salve a tutti sto creando un'applicazione web composte da jsp su Netbeans con l'utilizzo di Tomcat e del database di Postgres.
    Ho un problema riguardante l'inserimento dei dati nel db di postgres, il problema è che la select, la delete e l'update vengono eseguite correttamente mentre l'inserimento no.
    Posto il codice nella speranza che qualcuno possa aiutarmi.


    Verifica_Reg_utente.jsp
    codice:
    <%  
              String stringa_errore ="";
              String user = request.getParameter("user");
              if (user == "") stringa_errore += "user";
              String psw = request.getParameter("psw");
              if (psw == "") stringa_errore += "psw";
              String nome = request.getParameter("nome");
              if (nome == "") stringa_errore += "nome";
              String cognome = request.getParameter("cognome");
              if (cognome == "") stringa_errore += "cognome";
              if(stringa_errore.equals(""))
              {
                        String query3 = "INSERT INTO utente(username,psw,nome,cognome) values ('"+user+"', '"+psw+"', '"+nome+"', '"+cognome+"');";
                        database.Connessione_Data_Base db= new Connessione_Data_Base();
                        db.DMLquery(query3);
              } 
              else response.sendRedirect("registrazione.jsp?stringa_errore="+stringa_errore);
            %>
    Questo richiama la classe connessione database che posto sotto

    codice:
    Public class Connessione_Data_Base {
        private static Connection connessione = null; //Oggetto per la connessione al database
        private String NomeDb = "progetto";//Database
        private String User = "Studente";//Nome utente 
        private String Psw = "ger";//Password 
        
        //Cotruttore per la connessione al database
        public Connessione_Data_Base() throws ClassNotFoundException, SQLException
        {
            if (connessione==null || connessione.isClosed())
            {
                Class.forName("org.postgresql.Driver");
                String stringaConn = "jdbc:postgresql://localhost/"+ NomeDb +"?user="+ User +"&password="+ Psw;
                connessione = DriverManager.getConnection(stringaConn);
                connessione.setAutoCommit(true);
            }
        }
        
        //Metodo per effettuare le SELECT
        public ResultSet select(String query) throws SQLException
        {
            PreparedStatement stat = connessione.prepareStatement(query);
            return stat.executeQuery();
        }   
        //Metodo per effettuare INSERT, UPDATE e DELETE
        public void DMLquery(String query) throws SQLException
        {
            Statement stat = connessione.createStatement();
            stat.executeUpdate(query);
            connessione.commit();
        }
    }
    Una volta richiamata la classe non viene eseguita la commit e mi da il seguente errore

    codice:
    org.apache.jasper.JasperException: An exception occurred processing JSP page /verifica_Reg_utente.jsp at line 27
    
    24:           {
    25:                     String query3 = "INSERT INTO utente(username,psw,nome,cognome) values ('"+user+"', '"+psw+"', '"+nome+"', '"+cognome+"');";
    26:                     database.Connessione_Data_Base db= new Connessione_Data_Base();
    27:                     db.DMLquery(query3);
    28:           } 
    29:           else response.sendRedirect("registrazione.jsp?stringa_errore="+stringa_errore);
    30:         %>
    Stacktrace:

    codice:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:521)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:412)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    root cause
    
    javax.servlet.ServletException: org.postgresql.util.PSQLException: Cannot commit when autoCommit is enabled.
    	org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:865)
    	org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:794)
    	org.apache.jsp.verifica_005fReg_005futente_jsp._jspService(verifica_005fReg_005futente_jsp.java:95)
    	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    root cause
    
    org.postgresql.util.PSQLException: Cannot commit when autoCommit is enabled.
    	org.postgresql.jdbc2.AbstractJdbc2Connection.commit(AbstractJdbc2Connection.java:705)
    	database.Connessione_Data_Base.DMLquery(Connessione_Data_Base.java:38)
    	org.apache.jsp.verifica_005fReg_005futente_jsp._jspService(verifica_005fReg_005futente_jsp.java:83)
    	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    note The full stack trace of the root cause is available in the Apache Tomcat/6.0.35 logs.

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    JSP è tecnologia Java e Java ha un forum specifico.

    Inoltre, il codice va postato all'interno degli appositi tag CODE, in modo da mantenerne la formattazione e l'indentazione.

    Sposto nel forum corretto.

    PS: Gli oggetti in Java non si confrontano con ==, ma con il metodo equals():

    codice:
    if (user == "")   // Sarà sempre FALSE
    
    if ( user.equals("") )   // Sarà true se user è la stringa vuota
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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 © 2025 vBulletin Solutions, Inc. All rights reserved.