Sei sulla pagina 1di 5

SERVLET

import  java.io.*;
import  java.util.*;
import  java.sql.*;
import  javax.servlet.*;
import  javax.servlet.http.*;

public class ServletQuery extends HttpServlet {
     public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, 
ServletException {
           PrintWriter out = response.getWriter();
String sql;
Connection con = null;
//oggetto per eseguire la query (PreparedStatement/Statement)
PreparedStatement pstmt;
//Oggetto adibito a contenere il risultato della query
ResultSet rs;
//Preparo gli oggetti alla connessione
String url = "jdbc:postgresql://sqlserver.sci.univr.it/dblab200";
String user = "userlab200";
String passwd = "";
//parametri utilizzati dalla query
String nomeMuseo = "";
...
//Caricamento driver
Class.forName("org.postgresql.Driver");
//formato risultato
response.setContentType("text/html”);
//Struttura scheletro del file html fino al body
out.println("<!DOCTYPE ....");
        out.println("<html>");
         out.println("<head>");
         out.println("<title></title>");
         out.println("</head>");
         out.println("<body>");
//Scrivo la Query da eseguire
sql=”.......”
//Parametri da passare all'interrogazione
nomeMuseo = request.getParameter("museo");
...
// Connessione alla base di dati 
con = DriverManager.getConnection(url, user, passwd);
//Vedere PreparedStatement
pstmt = con.prepareStatement(sql);
pstmt.setString(1, nomeMuseo);
pstmt.setString(2, cittaMuseo);
// Esecuzione dell'interrogazione
rs=pstmt.executeQuery();
//Analisi del result set 
while(rs.next()){
//per tirare fuori gli attributi dal ResultSet si usa il metodo rs.getString(“nome_attributo”) es:
out.println( <hr> );
out println("<hr>");
out.println("<p>");
out.println("<strong>Titolo:</strong> "+rs.getString("titolo_mostra"));
}
//Chiudo la connessione
con.close();
//Chiudo il file html
out.println("</body>");
out.println("</html>");
}
}
STATEMENT
String nomeMuseo = “Palazzo Forti";
String cittaMuseo = “Verona";
Statement stmt;
ResultSet rs;
.........
sql   = " SELECT * ";
sql += " FROM museo ";
sql += " WHERE nome = ' "+ nomeMuseo + " ' ";
sql += " AND cognome = ' " + cittaMuseo + " ' ";
.........
stmt = connection.createStatement();
rs=stmt.executeQuery(sql);
PREPARED_STATEMENT
......
String nomeMuseo = request.getParameter(“nome_museo”);
String cittaMuseo = request.getParameter(“citta_museo”);
PreparedStatement pstmt;
ResultSet rs;
sql   = " SELECT * ";
sql += " FROM museo ";
sql += " WHERE nome = ? AND citta = ?";
pstmt = con.prepareStatement(sql);
pstmt.clearParameters();
//il numero sta a indicare il primo punt di domanda
pstmt.setString(1, nomeMuseo);
pstmt.setString(2, cittaMuseo);
rs=pstmt.executeQuery();

DBMS E BEAN
1. DBMS (classe che esegue la query e utilizza i metodi di ***Bean)
//nome del pacchetto di cui fanno parte il dbms e il bean.
package musei;
import java.sql.*;
import java.util.*;
public class DBMS {
//oggetti per la connessione
private String user = "userlab200";
private String passwd = "";
private String url = "jdbc:postgresql://sqlserver.sci.univr.it/dblab200";
//driver
private String driver = "org.postgresql.Driver";
//Metto il codice sql in una stringa
  private String sql = "SELECT * FROM mostra";
//costruttore della classe che carica i driver
public DBMS() throws ClassNotFoundException {
Class.forName(driver);
    }
/**
* Questo metodo viene utilizzato per la creazione di un MostraBean in base al
*contenuto della riga corrente del ResultSet.
*/
private MostraBean makeMostraBean(ResultSet rs) throws SQLException {
MostraBean bean = new MostraBean();
bean.setTitoloMostra(rs.getString("titolo_mostra"));
bean.setMuseo(rs.getString("nome_museo"));
bean.setCitta(rs.getString("citta_museo"));
bean.setInizioEsposizione(rs.getDate("inizio_esposizione"));
bean.setFineEsposizione(rs.getDate("fine_esposizione"));
bean.setPrezzoIntero(rs.getInt("prezzo_intero"));
bean.setPrezzoRidotto(rs.getInt("prezzo_ridotto"));
return bean;
}
//Metodo che permette la vera e propria esecuzione della query
public Vector getMostre() {
// Dichiarazione delle variabili
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
Vector result = new Vector();

//connessione
con = DriverManager.getConnection(url, user, passwd);
//ottengo l'oggetto per l'esecuzione dell'interrogazione.
stmt = con.createStatement();
//eseguo l'interrogazione
rs = stmt.executeQuery(sql);
// Memorizzo il risultato dell'interrogazione nel Vector
     while(rs.next())
result.add(makeMostraBean(rs));
//Chiudo la connessione e ritorno il Vector
con.close();
return result;
}
}
2. BEAN(spesso chiamato ***Bean, dove *** e' il nome della bd, contiene solamente i metodi 
set e get )
//nome del package
package musei;
public class MostraBean {
//dichiarazione variabili
private String titolo_mostra;
private String nome_museo;
............
//costruttore vuoto
public MostraBean() {
titolo_mostra = null;
         nome_museo = null;
        .......
    }
//Metodi set
public void setTitoloMostra(String v) {
titolo_mostra = v;
    }
public void setMuseo(String v) {
nome_museo = v;
}
........
//Metodi get
    public String getTitoloMostra() {
return titolo_mostra;
    }
    public String getMuseo() {
return nome_museo; 
}//fine get 
}//fine class