Francesca Platania Docente Prof. D. Cantone Modulo Didattico: Database nel Web Scuola...

34
Francesca Platania Francesca Platania Docente Prof. D. Cantone Modulo Didattico: Modulo Didattico: Database nel Web Database nel Web Scuola Interuniversitaria Siciliana di Scuola Interuniversitaria Siciliana di Specializzazione per l’Insegnamento Specializzazione per l’Insegnamento Secondario Secondario Classe di Concorso Classe di Concorso 42/A 42/A

Transcript of Francesca Platania Docente Prof. D. Cantone Modulo Didattico: Database nel Web Scuola...

Page 1: Francesca Platania Docente Prof. D. Cantone Modulo Didattico: Database nel Web Scuola Interuniversitaria Siciliana di Specializzazione per lInsegnamento.

Francesca PlataniaFrancesca Platania

DocenteProf. D. Cantone

Modulo Didattico:Modulo Didattico:

Database nel WebDatabase nel Web

Scuola Interuniversitaria Siciliana di Specializzazione Scuola Interuniversitaria Siciliana di Specializzazione per l’Insegnamento Secondarioper l’Insegnamento Secondario

Classe di Concorso 42/AClasse di Concorso 42/A

Page 2: Francesca Platania Docente Prof. D. Cantone Modulo Didattico: Database nel Web Scuola Interuniversitaria Siciliana di Specializzazione per lInsegnamento.

Il modulo, pensato per una quinta classe

Indirizzo Informatico, ha lo scopo di presentare

gli strumenti per la connessione e l’utilizzo dei

database relazionali mediante java server page

(JSP).

Database nel Web

Page 3: Francesca Platania Docente Prof. D. Cantone Modulo Didattico: Database nel Web Scuola Interuniversitaria Siciliana di Specializzazione per lInsegnamento.

Composizione del modulo

Unità didattica 1 Le Applet

Unità didattica 2 La connessione ai Database

Unità didattica 3 Le Servlet

Page 4: Francesca Platania Docente Prof. D. Cantone Modulo Didattico: Database nel Web Scuola Interuniversitaria Siciliana di Specializzazione per lInsegnamento.

Unità didattica 2

La connessione ai DatabaseLa connessione ai Database

Page 5: Francesca Platania Docente Prof. D. Cantone Modulo Didattico: Database nel Web Scuola Interuniversitaria Siciliana di Specializzazione per lInsegnamento.

Gli studenti dovranno dimostrare di avere:

Prerequisiti

Conoscenze sicure del linguaggio Java

Conoscenze teoriche di base sui database relazionali

Uso operativo del linguaggio SQL

Page 6: Francesca Platania Docente Prof. D. Cantone Modulo Didattico: Database nel Web Scuola Interuniversitaria Siciliana di Specializzazione per lInsegnamento.

ObiettiviObiettivi

Al termine di questa UD la classe sarà in grado di:

Costruire applet per le interrogazioni ad un database.

Costruire applicazioni Java per la connessione e l’accesso ad un database.

Page 7: Francesca Platania Docente Prof. D. Cantone Modulo Didattico: Database nel Web Scuola Interuniversitaria Siciliana di Specializzazione per lInsegnamento.

ContenutiContenuti

Richiami sui database e sul linguaggio SQL

Concetto di driver per la connessione e l’accesso ai database

Caratteristiche di JDBC

Applicazioni Java per operazioni di manipolazione

Esecuzione di interrogazioni in SQL con e senza parametri

Accedere al database tramite le applet

Page 8: Francesca Platania Docente Prof. D. Cantone Modulo Didattico: Database nel Web Scuola Interuniversitaria Siciliana di Specializzazione per lInsegnamento.

MetodologieMetodologie

ESERCITAZIONI in LABORATORIO su alcuni Progetti

LEZIONE FRONTALE

LEZIONE DIALOGATA

Page 9: Francesca Platania Docente Prof. D. Cantone Modulo Didattico: Database nel Web Scuola Interuniversitaria Siciliana di Specializzazione per lInsegnamento.

SpaziSpazi

LABORATORIO

AULA

AZIENDA

Page 10: Francesca Platania Docente Prof. D. Cantone Modulo Didattico: Database nel Web Scuola Interuniversitaria Siciliana di Specializzazione per lInsegnamento.

StrumentiStrumenti

LIBRO DI TESTO ED APPUNTI

COMPUTER

LAVAGNA LUMINOSA

Page 11: Francesca Platania Docente Prof. D. Cantone Modulo Didattico: Database nel Web Scuola Interuniversitaria Siciliana di Specializzazione per lInsegnamento.

Le verifiche sono periodiche e costanti, tese alla valutazione del grado di apprendimento della classe. E verranno effettuate a fine argomento a titolo riepilogativo.

Esse verranno effettuate con:

VerificheVerifiche

Colloqui individuali

Interventi di vario genere

Questionari e Test

Prove di laboratorio

Page 12: Francesca Platania Docente Prof. D. Cantone Modulo Didattico: Database nel Web Scuola Interuniversitaria Siciliana di Specializzazione per lInsegnamento.

Sia di tipo formativo e quindi in relazione all’applicazione, all’impegno, all’attenzione e al metodo di lavoro che ogni studente avrà mostrato durante l’attività didattica

La valutazione sarà:

Sia di tipo sommativo, ricavata dalla misurazione delle varie prove in cui gli studenti dovranno dimostrare di:

Valutazione

avere acquisito conoscenze e informazioni circa i contenuti

avere maturato abilità e competenze specifiche alla disciplina

Page 13: Francesca Platania Docente Prof. D. Cantone Modulo Didattico: Database nel Web Scuola Interuniversitaria Siciliana di Specializzazione per lInsegnamento.

Unità Didattica

Ore di Lezione

Ore di Laboratorio

Ore di Verifica

Ore di Recupero e/o Potenziamento

U.D. 2 6 6 4 2 + (Stage)

TempiTempi

Page 14: Francesca Platania Docente Prof. D. Cantone Modulo Didattico: Database nel Web Scuola Interuniversitaria Siciliana di Specializzazione per lInsegnamento.

Richiami sui database e sul linguaggio SQL

• Il database é un insieme di archivi integrati che possono costituire una base di lavoro comune per utenti diversi con applicazioni diverse.

I database costruiti secondo il modello relazionale (DataBase Relazionali) organizzano i dati in Tabelle (Relazioni).

Il software di gestione di un database si chiama DBMS (Data Base Management System), come ad esempio Oracle, Access, Sybase, ecc.

Page 15: Francesca Platania Docente Prof. D. Cantone Modulo Didattico: Database nel Web Scuola Interuniversitaria Siciliana di Specializzazione per lInsegnamento.

Sul database si possono eseguire le operazioni di manipolazione

per inserire nuovi dati, per modificare quelli già esistenti o per

cancellare i dati che non servono più. Si possono fare anche delle

interrogazioni (query) per ritrovare i dati che servono.

Il linguaggio standard utilizzato per codificare le operazioni svolte

su un database è il linguaggio SQL (Struttured Query Language).

I valori degli attributi nelle righe della tabella possono essere inseriti, aggiornati o cancellati mediate i seguenti comandi:

Operazioni sul Database

Inserimento

Aggiornamento

Cancellazione

Page 16: Francesca Platania Docente Prof. D. Cantone Modulo Didattico: Database nel Web Scuola Interuniversitaria Siciliana di Specializzazione per lInsegnamento.

Inserimento

INSERT INTO nome_tabella (campo1, campo2, …, campon)

VALUES (valore1, valore2, …, valoren);

Aggiornamento

UPDATE nome_tabella SET nome_campo = valore

WHERE condizione;

CancellazioneDELETE FROM nome_tabella WHERE condizione;

N.B.La clausola WHERE consente di operare su gruppi di record.

Page 17: Francesca Platania Docente Prof. D. Cantone Modulo Didattico: Database nel Web Scuola Interuniversitaria Siciliana di Specializzazione per lInsegnamento.

I Driver per la connessione al databaseI Driver per la connessione al database

Il termine driverdriver indica un programma che

consente ad una periferica hardware di comunicare

con l’unità centrale del computer: il programma

driver ritrova i dati richiesti e li trasferisce al

programma richiedente.

Il driver per databasedriver per database è un programma standard

che consente di trasferire i dati presenti in un

database: quando un programma vuole accedere al

database creato con un altro applicativo, deve

utilizzare il driver per quel database.

Page 18: Francesca Platania Docente Prof. D. Cantone Modulo Didattico: Database nel Web Scuola Interuniversitaria Siciliana di Specializzazione per lInsegnamento.

JDBC (Java DataBase Connectivity) mette a disposizione una libreria di classi Java per interfacciare l’accesso ai database che usano lo standard SQL, con l’obiettivo di fornire un’uniformità di accesso per un vasto insieme di prodotti DBMS relazionali.

ODBC (Open DataBase Connectivity) é l’interfaccia software standard in ambiente Windows che consente ai programmatori di scrivere in modo semplice le applicazioni per connettersi ai database e ritrovare i dati in essi contenuti.

Page 19: Francesca Platania Docente Prof. D. Cantone Modulo Didattico: Database nel Web Scuola Interuniversitaria Siciliana di Specializzazione per lInsegnamento.

Cos’è JDBCCos’è JDBC

Java offre un'interfaccia standard per l'accesso ai database chiamata JDBC.Secondo la terminologia di Java il software JDBC è classificato come una API (Application Programming Interface), perché fornisce i driver ai database per la connessione, l’esecuzione dei comandi SQL e le transazioni verso gli altri database.JDBC comprende anche il JDCB-ODBC Bridge, un ponte verso i driver standard ODBC, che rende possibile la connessione ad altri database creati con i prodotti DBMS noti, come ad es. Microsoft Access.Le operazioni di manipolazione e di interrogazione possono essere eseguite su un database locale usando applicazioni Java oppure sul database di un server in rete, usando le applet e le tecnologie del Web.

Page 20: Francesca Platania Docente Prof. D. Cantone Modulo Didattico: Database nel Web Scuola Interuniversitaria Siciliana di Specializzazione per lInsegnamento.

Come funziona JDBCCome funziona JDBC

I programmi che usano JDBC devono specificare l’uso del package java.sql del linguaggio Java.

import java.sql.* ;

La classe DriverManager tiene traccia dei driver disponibili e li gestisce stabilendo la connessione tra un driver e un particolare database. Il programmatore carica il driver con il comando:

Class.forName(“nome del driver”)

Ad es. Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);

Page 21: Francesca Platania Docente Prof. D. Cantone Modulo Didattico: Database nel Web Scuola Interuniversitaria Siciliana di Specializzazione per lInsegnamento.

Gestione delle EccezioniGestione delle Eccezioni

È buona norma inserire la gestione delle eccezioni nella fase di caricamento del driver utilizzando la seguente struttura:try

{

Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);

}

catch (ClassNotFoundException e)

{

System.err.print(“ClassNotFoundException : ”);

System.err.println(e.getMessage());

}

Page 22: Francesca Platania Docente Prof. D. Cantone Modulo Didattico: Database nel Web Scuola Interuniversitaria Siciliana di Specializzazione per lInsegnamento.

Il programma deve richiedere alla classe DriverManager di creare una connessione ad un particolare database specificando il nome di tale database ed eventualmente il nome dell’utente e la password per l’autorizzazione d’accesso.Il nome del database è specificato all’interno di una stringa che contiene tre informazioni: Protocollo Sottoprotocollo Nome del database secondo il formato previsto dal driver Ad es. String url = “jdbc:odbc:databaseX”;

La Classe DriverManager

Page 23: Francesca Platania Docente Prof. D. Cantone Modulo Didattico: Database nel Web Scuola Interuniversitaria Siciliana di Specializzazione per lInsegnamento.

La Classe DriverManagerIl DriverManager controlla se ci sia un driver disponibile in grado di gestire la richiesta di connessione, quando lo trova può effettuare la Connessione, in questo modo:

Connection con = DriverManager.getConnection (url, “username”, “password”);

La stringa viene in genere chiamata url di JDBC perché richiama il concetto di indirizzo internet, infatti identifica il protocollo jdbc così come un browser distingue un sito Internet tramite il protocollo http o ftp.

Se non sono stati fissati username e password la connessione si ottiene in questo modo:Connection con = DriverManager.getConnection (url, “”, “”);La Connessione rappresenta una sessione di lavoro con uno specifico database.

Page 24: Francesca Platania Docente Prof. D. Cantone Modulo Didattico: Database nel Web Scuola Interuniversitaria Siciliana di Specializzazione per lInsegnamento.

Esempi di manipolazione dei datiEsempi di manipolazione dei dati

Dopo aver stabilito una connessione si possono inviare al database i comandi SQL. Predisponiamo l’istruzione in una stringa:

String query = “Select * from Utenti”;

Successivamente usiamo il commando JDBC (Statement) con il metodo createStatement che crea un’istanza della classe Statement.

 Statement stmt = con.createStatement();

Page 25: Francesca Platania Docente Prof. D. Cantone Modulo Didattico: Database nel Web Scuola Interuniversitaria Siciliana di Specializzazione per lInsegnamento.

Il primo metodo restituisce il numero di righe che sono state sottoposte all’operazione di manipolazione della tabella, il secondo restituisce un insieme di risultati (ResultSet) contenente le righe della tabella che soddisfano la condizione specificata nell’interrogazione.

I commandi SQL sono attivati con i due metodi principali applicati allo statement:

  Metodo executeUpdate per i comandi SQL di inserimento, aggiornamento e cancellazione; si usa anche per i comandi SQL relativi alla creazione (Create Table), cancellazione (Drop Table) e modifica della struttura (Alter Table) delle tabelle del DB;

      Metodo executeQuery per le interrogazioni

Page 26: Francesca Platania Docente Prof. D. Cantone Modulo Didattico: Database nel Web Scuola Interuniversitaria Siciliana di Specializzazione per lInsegnamento.

Esempi di interrogazioneEsempi di interrogazione Le interrogazioni al database vengono eseguite tramite il metodo executeQuery.

Il valore di ritorno del metodo executeQuery è un singolo ResultSet, cioè un insieme di risultati.

Ex. String mySQL = “SELECT a, b, c from Tabella”;

ResultSet rs = stmt.executeQuery(mySQL);

I risultato di una select è una tabella formata dalle righe selezionate e dalle colonne scelte. Per scorrere questa tabella si fa riferimento a un cursore che indica la riga della tabella, ci si muove tra le righe con il metodo next() mentre la visualizzazione dei risultati contenuti nel ResultSet si ottiene facendo uso dei metodi getXXX dove XXX va sostituito con uno dei tipi di dato di Java.

Page 27: Francesca Platania Docente Prof. D. Cantone Modulo Didattico: Database nel Web Scuola Interuniversitaria Siciliana di Specializzazione per lInsegnamento.

Statement e Prepared StatementStatement e Prepared Statement

Il metodo createStatement serve per attivare semplici comandi SQL che non contengono alcun parametro.JDBC mette a disposizione il metodo prepareStatement, il quale crea un’istanza della classe PreparedStatement, che è una sottoclasse di Statement, e quindi ne eredita tutte le funzionalità.Il metodo preparedStatement risulta particolarmente utile quando si devono eseguire istruzioni SQL con uno o più parametri. I parametri sono indicati nel comando SQL con un ?, in questo modo:

PreparedStatement stmt = con.prepareStatement(“UPDATE Utenti SET Telefono = ? WHERE Id

= ?”);

Page 28: Francesca Platania Docente Prof. D. Cantone Modulo Didattico: Database nel Web Scuola Interuniversitaria Siciliana di Specializzazione per lInsegnamento.

import java.sql.* ;public class Selezione{

public static void main (String args[]){

String url = “jdbc:odbc:db1”;Connection con;String query = “Select Id, Cognome, Nome, CodFiscale ” +

“FROM Utenti where Provincia = ‘CT’ ”;Statement stmt;try{ Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);}catch{}

…} // Close main

} // Close Classe Selezione

Esempio 1

Page 29: Francesca Platania Docente Prof. D. Cantone Modulo Didattico: Database nel Web Scuola Interuniversitaria Siciliana di Specializzazione per lInsegnamento.

try

{

con = DriverManager.getConnection(url, “”, “”);

stmt = con.createStatement();

ResultSet rs = stmt.executeQuery(query);

while (rs.next())

{

int cod = rs.getInt(1);

….

String cf = rs.getString(4);

}

stmt.close();

con.close();

}

catch (SQLException ex) { }

Page 30: Francesca Platania Docente Prof. D. Cantone Modulo Didattico: Database nel Web Scuola Interuniversitaria Siciliana di Specializzazione per lInsegnamento.

import java.sql.* ;public class SelezioneParametri{

public static void main (String args[]){

String prov;/* Impostazione dello standard input */InputStreamReader in = new InputStreamR…(System.in);BufferReader tastiera = new Buff…(input);String url = “jdbc:odbc:db1”;Connection con;try{

Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);}catch{}

…} // Close main

} // Close Classe SelezioneParametri

Esempio 2

Page 31: Francesca Platania Docente Prof. D. Cantone Modulo Didattico: Database nel Web Scuola Interuniversitaria Siciliana di Specializzazione per lInsegnamento.

try

{

con = DriverManager.getConnection(url, “”, “”);

PreparedStatement stmt = con.prepareStatement(

“SELECT * FROM Utenti where Provincia = ?”);

try

{ //inserimento da tastiera

System.out.println(“Provincia richiesta ”);

prov = tastiera.readLine();

}

catch (Exception e) { }

Stmt.setString(1, prov);

ResultSet rs = stmt.executeQuery();

while (rs.next())

{

}

} catch (SQLException ex) { }

Page 32: Francesca Platania Docente Prof. D. Cantone Modulo Didattico: Database nel Web Scuola Interuniversitaria Siciliana di Specializzazione per lInsegnamento.

Schema RiassuntivoSchema Riassuntivo

ResultSet

PreparedStatement DriverManager

ConnectionStatement

Tipo di Dato

getCon

necti on

sott

ocla

sse

getX

XX

executeQuery() createStatement()

prep

areS

tate

men

t()executeQ

uery()

Page 33: Francesca Platania Docente Prof. D. Cantone Modulo Didattico: Database nel Web Scuola Interuniversitaria Siciliana di Specializzazione per lInsegnamento.

Applet per la Connessione al DatabaseApplet per la Connessione al Database

Quando si vuole gestire la connessione e l’accesso al db eseguendo le interrogazioni tramite pagine Web e browser occorrerà utilizzare un Applet Java. Per gestire ciò servono due file, uno contenente l’applet e l’altro contenente il codice HTML che richiama l’attivazione dell’applet su richiesta dell’utente.

Il codice dell’applet contiene le medesime istruzioni JDBC utilizzate nelle applicazioni.

Sulla possibilità di accedere ai db in rete occorre delle osservazioni:

è possibile aprire una connessione con una base dati remota solo se questa si trova sul server dal quale l’applet è stato scaricato;non possibile utilizzare in alcun modo informazioni presenti sul client.

Page 34: Francesca Platania Docente Prof. D. Cantone Modulo Didattico: Database nel Web Scuola Interuniversitaria Siciliana di Specializzazione per lInsegnamento.

Quindi le applet protetteapplet protette si possono utilizzare solo in una Intranet aziendale,Intranet aziendale, purché il driver ODBC, il bridge e JDBC siano stati caricati su tutte le macchine client.

Le classi dei package java che è necessario importare per creare un appletapplet sono:

java.applet;java.applet;

java.awt;java.awt;

java.sql;java.sql;

java.util;java.util;

ConclusioniConclusioni