Ciao a tutti e buon natale.
E da poco che uso java per scrivere applicazioni web(fino ad ora usavo PHP), il mio problema e capire il comportamento del applicativo quando richiamo le pagine jsp. Ovvero, ho una classe Database scritta cosi
codice:
package PKTecWeb;
import java.sql.*;
import java.util.logging.Level;
import java.util.logging.Logger;
public class Database {
private Connection con;
private Statement stmt;
private ResultSet rs;
public Database(String user, String password){
try
{
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost/TecWeb",user,password);
stmt = (Statement) con.createStatement();
} catch (SQLException | ClassNotFoundException e) {
Logger.getLogger(Database.class.getName()).log(Level.SEVERE, null, e);
}
}
public void ChiudiConnessione()
{
try {
rs.close();
stmt.close();
con.close();
} catch (SQLException ex) {
Logger.getLogger(Database.class.getName()).log(Level.SEVERE, null, ex);
}
}
public ResultSet EseguiQuery(String query)
{
try {
stmt.executeQuery(query);
rs = stmt.getResultSet();
return rs;
} catch (SQLException ex) {
Logger.getLogger(Database.class.getName()).log(Level.SEVERE, null, ex);
return null;
}
}
}
poi ho una classe documento appartenente allo stesso parkage in cui eseguo questa metodo
codice:
public Documenti(String NumeroDoc) throws SQLException{ PKTecWeb.Database dba=new PKTecWeb.Database("root","");
String str="select * from Utenti";
ResultSet rs = dba.EseguiQuery(str);
rs.next();
}
ora se da una pagina jsp richiamo il costruttore Documenti in questo modo
codice:
<%
String DOCn= request.getParameter("doc");
Documenti doc = new Documenti(DOCn);
%>
la pagina va in errore dicendo la riga rs.next() punta a NULL. mentre se richiamo tutto da jsp quindi facendo cosi
codice:
<% String DOCn= request.getParameter("doc");
PKTecWeb.Database dba=new PKTecWeb.Database("root","");
String str = "select * from Utenti";
ResultSet rs = dba.EseguiQuery(str);
rs.next();
%>
funziona correttamente.
potreste dirmi cosa sbaglio? grazie in anticipo e scusate per tutto il codice mostrato ma penso sia il modo migliore per spiegare il mio problema.