nel senso che i libri che ho io, spiegano solamente i passi per connettersi al database ma non spiegano gli approcci che tu hai elencato ne quindi ci sono esempi.
Per un sondaggio mettono il seguente codice, ma funzionerebbe realmente se più utenti si connettessero sul server?
codice:
package controller;
import java.sql.*;
import javax.sql.*;
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 = "sondaggioServlet", urlPatterns = {"/sondaggioServlet"})
public class sondaggioServlet extends HttpServlet {
/**
* Processes requests for both HTTP
* <code>GET</code> and
* <code>POST</code> methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
int value = Integer.parseInt(request.getParameter("squadra"));
try {
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/db1?user=root&password=root");
// Crea un oggetto Statement
Statement stmt = con.createStatement();
String query = "UPDATE Sondaggio SET Voti = Voti + 1 "
+ "WHERE ID = " + value;
stmt.executeUpdate(query);
// ottengo il totale dei voti
query = "SELECT sum(Voti) FROM Sondaggio";
ResultSet totalRS = stmt.executeQuery(query);
totalRS.next();
int total = totalRS.getInt(1);
//ottengo risultati
query = "SELECT * FROM Sondaggio ORDER BY Voti DESC";
ResultSet resultRS = stmt.executeQuery(query);
/* TODO output your page here. You may use following sample code. */
out.println("<html>");
out.println("<head>");
out.println("<title>Risultati Sondaggio</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Chi Vincerà il Campionato?</h1>");
out.println("
");
out.println("
Risultati:<pre>");
out.println("</p>");
//elabora risultati
int votes;
int percent;
while (resultRS.next()) {
out.print(resultRS.getString(2));
out.print(":");
votes = resultRS.getInt(3);
percent = (votes*100)/total;
out.print(percent);
out.print("%");
out.print(" Risposte:");
out.println(votes);
}
out.println();
out.print("Voti Totale:");
out.println(total);
out.println("
Grazie per aver partecipato!");
out.println("</pre></body>");
out.println("</html>");
out.close();
con.close();
stmt.close();
totalRS.close();
resultRS.close();
} catch (Exception e) {
out.println("<html>");
out.println("<head>");
out.println("<title>ERROR</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Errore: " + e.getMessage() + "<h2>");
out.println("Riprova più tardi. </body></html>");
out.close();
}
}
grazie per le risposte...non ti scoccio più