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.