La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "Francesca Platania Docente Prof. D. Cantone Modulo Didattico: Database nel Web Scuola Interuniversitaria Siciliana di Specializzazione per lInsegnamento."— Transcript della presentazione:

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

2 Il modulo, pensato per una quinta classe Indirizzo Informatico, ha lo scopo di presentare gli strumenti per la connessione e lutilizzo dei database relazionali mediante java server page (JSP). Database nel Web

3 Composizione del modulo Unità didattica 1 Le Applet Unità didattica 2 La connessione ai Database Unità didattica 3 Le Servlet

4 Unità didattica 2 La connessione ai Database

5 Gli studenti dovranno dimostrare di avere: Prerequisiti Conoscenze sicure del linguaggio Java Conoscenze teoriche di base sui database relazionali Uso operativo del linguaggio SQL

6 Obiettivi 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 laccesso ad un database.

7 Contenuti Richiami sui database e sul linguaggio SQL Concetto di driver per la connessione e laccesso 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

8 Metodologie ESERCITAZIONI in LABORATORIO su alcuni Progetti LEZIONE FRONTALE LEZIONE DIALOGATA

9 Spazi LABORATORIO AULA AZIENDA

10 Strumenti LIBRO DI TESTO ED APPUNTI COMPUTER LAVAGNA LUMINOSA

11 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: Verifiche Colloqui individuali Interventi di vario genere Questionari e Test Prove di laboratorio

12 Sia di tipo formativo e quindi in relazione allapplicazione, allimpegno, allattenzione e al metodo di lavoro che ogni studente avrà mostrato durante lattività 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

13 Unità Didattica Ore di Lezione Ore di Laboratorio Ore di Verifica Ore di Recupero e/o Potenziamento U.D (Stage)Tempi

14 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.

15 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

16 Inserimento INSERT INTO nome_tabella (campo1, campo2, …, campon) VALUES (valore1, valore2, …, valoren); Aggiornamento UPDATE nome_tabella SET nome_campo = valore WHERE condizione ; Cancellazione DELETE FROM nome_tabella WHERE condizione; N.B. La clausola WHERE consente di operare su gruppi di record.

17 I Driver per la connessione al database driver Il termine driver indica un programma che consente ad una periferica hardware di comunicare con lunità centrale del computer: il programma driver ritrova i dati richiesti e li trasferisce al programma richiedente. driver per database Il driver 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.

18 JDBC (Java DataBase Connectivity) mette a disposizione una libreria di classi Java per interfacciare laccesso ai database che usano lo standard SQL, con lobiettivo di fornire ununiformità di accesso per un vasto insieme di prodotti DBMS relazionali. ODBC (Open DataBase Connectivity) é linterfaccia 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.

19 Cosè 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, lesecuzione 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.

20 Come funziona JDBC I programmi che usano JDBC devono specificare luso 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);

21 Gestione 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()); }

22 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 dellutente e la password per lautorizzazione daccesso. Il nome del database è specificato allinterno 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

23 Il 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.

24 Esempi di manipolazione dei dati Dopo aver stabilito una connessione si possono inviare al database i comandi SQL. Predisponiamo listruzione in una stringa: String query = Select * from Utenti; Successivamente usiamo il commando JDBC (Statement) con il metodo createStatement che crea unistanza della classe Statement. Statement stmt = con.createStatement();

25 Il primo metodo restituisce il numero di righe che sono state sottoposte alloperazione di manipolazione della tabella, il secondo restituisce un insieme di risultati (ResultSet) contenente le righe della tabella che soddisfano la condizione specificata nellinterrogazione. 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

26 Esempi 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.

27 Statement 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 unistanza 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 = ?);

28 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

29 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) { }

30 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

31 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) { }

32 Schema Riassuntivo ResultSet PreparedStatementDriverManager ConnectionStatement Tipo di Dato getConnection sottoclasse getXXX executeQuery()createStatement() prepareStatement() executeQuery()

33 Applet per la Connessione al Database Quando si vuole gestire la connessione e laccesso al db eseguendo le interrogazioni tramite pagine Web e browser occorrerà utilizzare un Applet Java. Per gestire ciò servono due file, uno contenente lapplet e laltro contenente il codice HTML che richiama lattivazione dellapplet su richiesta dellutente. Il codice dellapplet 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 lapplet è stato scaricato; non possibile utilizzare in alcun modo informazioni presenti sul client.

34 applet protette Intranet aziendale, Quindi le applet protette si possono utilizzare solo in una Intranet aziendale, purché il driver ODBC, il bridge e JDBC siano stati caricati su tutte le macchine client. applet Le classi dei package java che è necessario importare per creare un applet sono: java.applet; java.awt; java.sql; java.sql; java.util; java.util; Conclusioni


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

Presentazioni simili


Annunci Google