Ciao a tutti,
non riesco a capire proprio dove sbaglio!!!
Vi prego aiutatemi!!!![]()
Il risultato ottenuto e' questo:
Servlet elenca e': com.mysql.jdbc.Driver
Servlet elenca e': null
Servlet elenca e': null
Se andasse a leggere i dati dovrebbe darmi i primi 3 record del DB: nome cognome email.
Se faccio tutto dallo stesso servlet sia lettura nel DB che scrittura sul WEB, tutto avviene correttamente, ma vorrei "delegare" la lettura del DB alla classe LeggiDB e il metodo getData() dovrebbe restituirmi i record del DB che sono minori di 100 (attualmente sono 24).
Grazie in anticipo!!!
dato questo servlet:
codice:import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet(name = "elenca", urlPatterns = {"/elenca"}) public class elenca extends HttpServlet { protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); try { Object[] mieiDati; LeggiDB array=new LeggiDB(); mieiDati=array.getData(); out.println("<html>"); out.println("<head>"); out.println("<title>Servlet elenca</title>"); out.println("</head>"); out.println("<body>"); out.println("<h1>Servlet elenca e': " +mieiDati[0] + "</h1>"); out.println("<h1>Servlet elenca e': " +mieiDati[1] + "</h1>"); out.println("<h1>Servlet elenca e': " +mieiDati[2] + "</h1>"); out.println("</body>"); out.println("</html>"); } catch(Exception e){ out.println("ERRORE:"); } finally { out.close(); } } // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."> /** * Handles the HTTP * <code>GET</code> method. * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } /** * Handles the HTTP * <code>POST</code> method. * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } /** * Returns a short description of the servlet. * * @return a String containing servlet description */ @Override public String getServletInfo() { return "Short description"; }// </editor-fold> }
e la classe:
codice:import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class LeggiDB { Connection conn=null; Statement stmt=null; ResultSet rs=null; public Object[] getData() { Object array[]; array= new Object[100]; try{ Class.forName("com.mysql.jdbc.Driver"); conn= DriverManager.getConnection("jdbc:mysql://localhost:3306/lesson22?user=root&password=root"); String sqlLeggi="select * from Employee"; stmt=conn.createStatement(); rs=stmt.executeQuery(sqlLeggi); int i=0; String nome,cognome,email; while(rs.next()){ nome=rs.getString("nome"); cognome=rs.getString("cognome"); email=rs.getString("email"); array[i]=nome; i++; array[i]=cognome; i++; array[i]=email; i++; } return array; } catch (Exception exc){ exc.printStackTrace(); array[0]=exc.getMessage(); return array; } finally{ try{ rs.close(); stmt.close();conn.close();} catch(Exception e){e.printStackTrace();} } } }

Rispondi quotando
