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
Questo richiama la classe connessione database che posto sottocodice:<% 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); %>
Una volta richiamata la classe non viene eseguita la commit e mi da il seguente errorecodice: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(); } }
Stacktrace: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: %>
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.

Rispondi quotando

