Java EE 1. Andrea Bei

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Java EE 1. Andrea Bei"

Transcript

1 Java EE 1 Laboratorio di Ingegneria del Software Andrea Bei

2 CBD (Component Based Development) interfaccia componente La definizione secondo il glossario "UML-User Guide" : "Un componente è una parte fisica e sostituibile di un sistema che implementa un insieme di interfacce." L implementazione (classi utilizzate) è nascosta Lo sviluppo a componenti incrementa la qualità del SW Ovvero: Manutenibilità, Leggibilità, Riusabilità, Portabilità, Affidabilità Applicazioni progettate secondo il paradigma a componenti sono chiamate component-based 2

3 Application Server (AS) Le applicazioni component based possono essere installate in component container ( o più semplicemente container) Un AS è costituito da un insieme di container per componenti di diverso tipo (EJB Container, WEB Container, WEB Server) Lo scopo principale di un container è gestire il ciclo di vita dei componenti (creazione, distruzione, pooling, passivazione, ) Tra gli altri principali servizi offerti dagli application server Gestione dello stato Gestione della sicurezza Gestione dell accesso ai dati Gestione delle transazioni Per essere installato (il termine corretto è deploy) su un AS un componente deve aderire ad opportune specifiche 3

4 Applicazioni di classe Enterprise Sono sistemi informatici utilizzati in medie o grandi organizzazioni a supporto di sistemi informativi critici. Ad esempio: ERP (Enterprise Resource Planning): Contabilità, Personale, Inventario,.Controllo di gestione CRM (Customer Relationship Management): sistemi i per la gestione dei clienti, dei contatti ed il tracciamento degli eventi associati ai clienti SRM (Service Request Management): gestione e processamento di richieste Una applicazione i di classe Enterprise deve avere le seguenti caratteristiche: Performante: deve servire più richieste concorrenti (multiuser) in maniera efficiente. Tale caratteristica si ottiene attraverso i servizi di caching e pooling. Distribuita: i componenti devono poter essere distribuiti su server diversi Scalabile: l applicazione deve garantire il mantenimento dei tempi di risposta all aumentare degli utenti concorrenti. (ad es: deve essere possibile scalare orizzontalmente mediante il clustering) Sicura: gli utenti devono essere autenticati e autorizzati Affidabile Portabile Transazionale 4

5 Java EE Java Enterprise Edition è un insieme di tecnologie e API Supporta un approccio component-based per la progettazione, lo sviluppo, l assemblaggio e la messa in esercizio di applicazioni di classe enterprise Definisce le specifiche per i vendor di application server Java EE- compliant Comprende le seguenti principali tecnologie/api JSP Java Server Pages JSF Java Server Faces Java Servlets Servlet API Web Services EJB Enterprise JavaBeans JNDI Java Naming and Directory Interface JDBC 2.0 Extensions Java Database Connectivity it Extensions RMI-IIOP RMI over Internet Inter-Orb Protocol JMS Java Message Service Java Mail Java Mail JAF JavaBeans Activation Framework JTA Java Transaction API XML Extensible Markup Language JMX Java Management Extensions 5

6 Application Server Tra gli application server Java EE- Compliant più conosciuti: IBM WebSphere Oracle WebLogic Server JBoss (Open Source) Glassfish (Open Source) Tomcat (Open Source) Tutti gli AS elencati sopra sono dotati di Web Container + EJB Container tranne Tomcat 6

7 Componenti e strati Java EE La piattaforma Java EE supporta il pattern architetturale Layer Il numero di Layer (o Tier) adottati è una scelta di progettazione Un modello classico di applicazione Java EE prevede almeno 4 Layer I Presentazione o Client Tier: Componenti client: Applicazioni e Thin Client (CL) HTML (CL) II Applicazione o Web Tier Componenti Web: Servlet,JSP,JSF, JSF JavaBean, POJO (AS) III - Logica di business o Business Tier Componenti di business: EJB (Enterprise Java Bean) e POJO (AS) IV Persistenza o EIS Tier Componenti EIS (Enterprise Information Systems) I sistemi per la persistenza dei dati DB, ORM (Object Relational Mapping) 7

8 Componenti e strati J2EE Un modello completo prevede la suddivisione del layer logica di business nei due layer Servizi e Dominio. Si ottengono 5 Layer Tale modello è molto diffuso ed è quello di riferimento per il corso Livello Responsabilità Tecnologia Presentazione User Interface Componenti Client HTML/Javascript/Swing Applicazione Servizi sintassi,interazione con lo strato dei servizi, workflow degli use case (Controller di sessione) transazioni, logica di business e di workflow Componenti Web Servlet, JSP, JSF, JavaBean Componenti di Business EJB (Session bean) e POJO Dominio i semantica, modello di dominio, i Componenti di Business logica business di dominio (EJB) Entity bean e POJO Persistenza Accesso e gestione dati Componenti EIS RDBMS/ODBMS/ORM 8

9 Componenti e strati J2EE E possibile usare l architettura di riferimento in maniera flessibile. Es: Unire differenti strati logici usando una sola tecnologia. Applicazione Web con strati di servizio e dominio realizzati con semplici JavaBean. Non vengono utilizzati EJB nel Business Tier Usare solo un sottoinsieme degli strati Applicazione Client-Server senza l utilizzo del Web Tier. Lo strato di presentazione è realizzato con classi Swing, gli strati di applicazione, servizio, dominio sono realizzati con EJB o semplici JavaBean 9

10 Componenti e strati J2EE Sfruttando le tecnologie offerte dalle piattaforme Java SE+ Java EE è possibile sviluppare applicazione con caratteristiche "Enteprise" Le tecnologie fondamentali sono: JDBC, Servlet, JSP, EJB, JNDI Presentazione J2EE Application Server Applicazione Persistenza JDBC JNDI Servizi Dominio 10

11 Il percorso didattico Presentazione Persistenza Architettura "semplice" 1. JDBC 2. Servlet Presentazione Persistenza Presentazione J2EE Application Server Architettura "media" complessità 1. JSP 2. MVC Persistenza Architettura completa: 1. EJB 2. JNDI Gli strati di applicazione, servizi e dominio sono implementati dalle tecnologie presenti nel tier 2 11 A destra gli argomenti che sono via via spiegati a partire dalla architettura "semplice"

12 Architettura "semplice", Lo strato di presentazione Presentazione (Client Tier) Browser (Thin Client) Interpreta le pagine HTML generate dinamicamente dai componenti web Applet (Thin/Thick Client) Piccole applicazioni Java realizzate mediante le API Swing Sono eseguite all "interno" del browser (su una JVM associata al browser) Sono classi che estendono java.applet.applet o javax.swing.japplet 12

13 Lo strato di persistenza Persistenza (EIS Tier) E lo strato responsabile della persistenza dei dati. E implementato da sistemi EIS (Enterprise Information System). Questi possono essere: DBMS (relazionali (RDBMS), a oggetti (ODBMS), ) Sistemi ORM (Object Relational Mapping) (es: Hibernate) creano una rappresentazione a oggetti di dati memorizzati in database relazionali Sistemi Informativi preesistenti (Sistemi Legacy) Nel caso comune in cui il sistema EIS coincide con un RDBMS la comunicazione tra lo strato di business (servizio + dominio) e lo strato di persistenza avviene mediante JDBC 13

14 JDBC JDBC (Java DataBase Connectivity) è una API per l accesso a DataBase relazionali Permette ad applicazioni JAVA di eseguire istruzioni SQL su database relazionali e gestire i risultati restituiti. JDBC definisce delle classi per rappresentare: connessioni a database istruzioni SQL result sets (insieme dei record restituiti da una Query SQL) database metadata (dati che descrivono la struttura del DB), ecc. è organizzata in diversi "strati": l applicazione vede solo lo strato superiore, che è indipendente dal database che viene interrogato il compito di interfacciarsi effettivamente con il database è delegato ad una serie di driver sottostanti, che possono essere scritti in codice Java o nativo. 14

15 JDBC Presentazione Applicazione i Servizi Dominio Persistenza 15

16 ODBC ODBC (Open DataBase Connectivity) è una API Microsoft per l accesso a RDBMS Nei sistemi operativi Microsoft è presente il Data Source Administrator che permette di dichiarare al sistema operativo le fonti dati ODBC usate Una fonte dati ODBC è caratterizzata da: un nome: il DSN (Data Source Name) un driver ODBC per la comunicazione con il DBMS (Oracle, SQL Server, Access) il riferimento ad un database (il nome del DB) Le applicazioni instaurano una connessione con il database riferendosi al nome della fonte dati ODBC relativa. 16

17 JDBC JDBC-ODBC Bridge Driver: implementa un "ponte" di comunicazione tra JDBC e ODBC; Permette ad applicazioni JAVA (tramite JDBC) di accedere a database registrati via ODBC API Native: convertono chiamate JDBC in chiamate alle API proprietarie dei vari DBMS (Oracle, Sybase, Informix, DB2, Postgres, MySQL) Driver 100% JAVA Basati su un protocollo indipendente dal DBMS (JDBC-Net): traducono le chiamate JDBC in un protocollo indipendente dal DBMS. Tale protocollo viene poi ritradotto da un server nel protocollo specifico del DBMS. Il server permette di connettere una applicazione sviluppata interamente in JAVA ai vari DBMS. Basati sul protocollo del DBMS: traducono le chiamate JDBC nel protocollo usato dal DBMS. Questo permette una chiamata diretta dal client al server DBMS 17

18 JDBC 18

19 JDBC: Classi, interfacce e metodi principali Classe java.sql.drivermanager: fornisce le funzionalità base di un gestore di driver. I metodi sono: Connection getconnection(url,user,password): crea una connessione con un DB void setlogintimeout(int): imposta il timeout di connessione int getlogintimeout(): t() restituisce i il timeout t di connessione setlogstream( PrintStream ): imposta lo Stream di log PrintStream getlogstream(): accede allo Stream di Log void println(string): scrive un messaggio sul Log Interfaccia java.sql.connection: rappresenta una connessione con uno specifico database. I metodi sono: void close(): chiude la connessione Statement createstatement(): crea e restituisce un oggetto di tipo Statement DatabaseMetaData getmetadata(): restituisce informazioni sulla struttura del database setautocommit(boolean): indica se presente o no l autocommit (default=true) commit(): rende effettive le istruzioni i i SQL eseguite dall ultimo lti commit rollback(): annulla le istruzioni SQL eseguite dall ultimo commit 19

20 JDBC: Classi, interfacce e metodi principali Classe java.sql.statement: un oggetto di tipo Statement è usato per eseguire delle istruzioni SQL. I metodi sono: ResultSet executequery( String ): esegue una Query SQL. Restituisce un oggetto di tipo ResultSet che rappresenta il risultato della Query int executeupdate( String ): esegue una istruzione SQL che modifica la struttura o i dati del database( CREATE, INSERT, ecc..). int è il numero di righe modificate boolean execute( String ): esegue un comando SQL di interrogazione o modifica ResultSet getresultset(): restituisce il risultato dell ultima istruzione SQL eseguita con execute (null se l istruzione era di modifica) int getupdatecount(): restituisce il numero di righe coinvolte nell ultima istruzione SQL eseguita con execute. void setquerytimeout(int) eou e int getquerytimeout(): eou accesso al timeout Classe java.sql.resultset: un oggetto di tipo ResultSet rappresenta il risultato di una Query. I metodi sono: getxxx("nome Campo") con XXX=Float,String,Byte,Short;Long.. Restituisce tu sce del record corrente il valore del campo passato come argomento next() : Aggiorna il puntatore al record corrente facendolo avanzare di un record in JDBC2.0 ci sono anche: absolute(int), relative(int) e previous() 20

21 Connessione con un DBMS JDBC-ODBC Driver / API Native Per effettuare una connessione con un DBMS è necessario: Effettuare l import delle classi del package java.sql Caricare il driver di accesso a DB con l istruzione Class.forName(<path completo della classe che implementa il driver>); individua carica ed esegue il link della classe passata come parametro Instaurare la connessione con il DBMS con l istruzione: Connection con = DriverManager.getConnection(url, <login>, <password>); url è di tipo String ed ha la sintassi "jdbc:<subprotocol>:<subname>" dove: <subprotocol>: è il sottoprotocollo (es: odbc) <subname>: serve ad identificare la sorgente dei dati. 21

22 Connessione con un DBMS esempi Es: connessione con il DBMS Access libreria.mdb associato ad una fonte dati ODBC chiamata "libreria" con login="libreria" e password="libreria" Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String url="jdbc:odbc:libreria"; Connection con =DriverManager.getConnection(url, "libreria", "libreria"); Es: connessione con il DBMS open source Postgres "mynewdb" sulla macchina ( Class.forName( "org.postgresql.driver" " ); String url = "jdbc:postgresql:// /mynewdb"; Connection con = DriverManager.getConnection( url, USER, PASS ); 22

23 Connessione con un DBMS esempi Es: connessione con db Oracle 1. Copiare i file contenenti i driver (scaricabili dal sito Oracle) classes12.zip, jndi.zip in $ORACLE_HOME/jdbc/lib/ 2. aggiornare il CLASSPATH inserendo "$ORACLE_HOME/jdbc/lib/classes12.zip:$ORACLE_HOME/jdbc/lib/jndi.zip" 1. Eseguire la connessione al DataBase Class.forName("oracle.jdbc.driver.OracleDriver"); String url="jdbc:oracle:thin:@(description=(address=(protocol=tcp)(host= ) (PORT=1521))(CONNECT_DATA=(SID=ID_DB)))"; Connection con =DriverManager.getConnection(url, "login", "password"); 23

24 Istruzioni SQL Stabilita una connessione è possibile eseguire istruzioni SQL creare un oggetto di tipo Statement. Se la connessione è descritta dall oggetto con l istruzione è: Statement stmt = con.createstatement(); invocare i metodi dell oggetto Statement: int executeupdate("<istruzione SQL>"): per istruzioni di tipo CREATE, DROP, DELETE, INSERT, UPDATE stmt.executeupdate("create table Anagrafica"+ "( Nome varchar(32)," + " Cognome varchar(32))"); ResultSet executequery("<istruzione SQL>") è usato per query stmt.executequery("select * from Libro"+ " where Titolo like \"Moby Dick%\" "); 24

25 Accesso al risultato delle query Il metodo executequery restituisce un oggetto di tipo ResultSet Un ResultSet è l insieme di record che costituiscono il risultato di una query. Su quest insieme viene mantenuto un puntatore alla posizione corrente. l puntatore viene posto sul primo record alla prima invocazione del metodo next. String query = "SELECT Titolo, ISBN FROM Libro"; ResultSet rs = stmt.executequery(query); while (rs.next()) { String s = rs.getstring("titolo"); String c = rs.getstring("isbn"); System.out.println(s + " " + c); } 25

26 Esempio import java.sql.*; class provajdbc { public static void main(string arg[]) throws Exception { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String url="jdbc:odbc:libreria"; Connection con=drivermanager.getconnection(url,"libreria","libreria"); Statement stmt = con.createstatement(); stmt.executeupdate("create table Anagrafica"+ "( Nome varchar(32)," + " Cognome varchar(32))"); stmt.executeupdate("insert into Anagrafica values ( Giacomo, Leopardi )"); ResultSet rs=stmt.executequery("select Nome,Cognome from Anagrafica"); }} while (rs.next()) { System.out.println(rs.getString("Nome")+" "+rs.getstring("cognome")); } 26

27 Prepared statement è una istruzione SQL precompilata dal DBMS l esecuzione di una query è più efficiente (si risparmia il passo di compilazione del DBMS) conviene quando occorre eseguire molte volte la stessa query e possibile il passaggio di parametri PreparedStatement updatesales = con.preparestatement( "UPDATE COFFEES SET SALES =? WHERE COF_NAME LIKE? "); updatesales.setint(1, 75); updatesales.setstring(2, "Colombian"); int n=updatesales.executeupdate(); (1) creazione: i parametri sono specificati con "?" (2) passaggio parametri: posizionale (3) esecuzione n=numero di righe modificate 27

28 Prepared statement PreparedStatement updatesales; String updatestring = "update COFFEES " + "set SALES =? where COF_NAME like?"; updatesales = con.preparestatement(updatestring); t t( t int [] salesforweek = {175, 150, 60, 155, 90}; String [] coffees = {"Colombian", "French_Roast", "Espresso", "Colombian_Decaf", "French_Roast_Decaf"}; int len = coffees.length; for(int i = 0; i < len; i++) { updatesales.setint(1, salesforweek[i]); updatesales.setstring(2, coffees[i]); updatesales.executeupdate(); } 28

29 Transazioni una transazione è un insieme di operazioni su un database che soddisfa le seguenti proprietà (ACID) 1. Atomicity le operazioni vengono eseguite in modo atomico "tutte a buon fine o nessuna" 2. Consistency: l esecuzione della transazione fa transitare il db da uno stato consistente ad un altro stato consistente (durante l esecuzione è possibile la "non consistenza") 3. Isolation le transazioni concorrenti sono isolate l una dall altra. L una non deve vedere i dati che l altra sta modificando. 4. Durability i dati sopravvivono a crash. Esiste un log transazionale che registra tutte le operazioni eseguite sul db. E possibile risalire ad un punto di consistenza. 29

30 Transazioni I comandi classici i dei DBMS per la gestione delle transazioni i sono: COMMIT rende definitivo sul DB ciò che è stato fatto dalla transazione chiude la transazione ROLLBACK annulla sul DB ciò che è stato fatto dalla transazione. riporta il DB allo stato consistente in cui era prima che iniziasse la transazione per soddisfare la Atomicity e la Consistency viene eseguito se una delle operazioni i della transazione non va a buon fine 30

31 Transazioni ed eccezioni disabilito AutoCommit try { con.setautocommit(false); PreparedStatement updatesales = con.preparestatement( "UPDATE COFFEES SET SALES =? se arrivo qui le operazioni WHERE COF NAME LIKE?"); SQL sono andate a buon updatesales.setint(1, 50); fine. eseguo il COMMIT e updatesales.setstring(2, "Colombian"); chiudo la transazione. updatesales.executeupdate(); PreparedStatement updatetotal = con.preparestatement( "UPDATE COFFEES SET TOTAL = TOTAL +? WHERE COF_NAME LIKE?"); updatetotal.setint(1, 50); updatetotal.setstring(2, "Colombian"); updatetotal.executeupdate(); con.commit(); con.setautocommit(true); } catxh (SQLException e){ if (con!=null) con.roolback()} se qualche operazione SQL non va a buon fine viene catturata l eccezione. eseguo il ROLLBACK e annullo la transazione 31

32 Es: sito WEB di una catena di librerie Ogni libreria possiede un accesso WEB Il fornitore del servizio fornisce un WEB Server che pubblica su WEB i dati relativi ai libri venduti (Autore, Titolo, Prezzo, Disponibilità nei vari punti vendita, ecc.) I dati sui libri e sulla loro disponibilità vengono inseriti da un operatore di ogni libreria in base ai libri acquistati e venduti Cliente libreria 1 DBMS Application Server Internet libreria 2 libreria i N 32

33 Esempio: sito WEB di una catena di libreri Use Case Diagram 33

34 Esempio: sito WEB di una catena di librerie nome Cod libreria copie Prezzo Titolo Editore Anno LIBRERIA (1,1) (1,n) LIBRO (1,1) 1) (1,n) GENERE (1,1) ISBN Cod_genere Genere Schema ER ( può essere fatto in UML!) (1,n) AUTORE Cod_autore Cognome Nome Anno di nascita Luogo di nascita 34

35 Esempio: sito WEB di una catena di libreri Architettura Applicativa (Package Diagram) Strato di dominio In questo caso è un semplice Facade verso il DB. Deve: Incapsulare le istruzioni (SQL) di comunicazione con il DB Offrire al livello superiore metodi indipendenti dal paradigma relazionale E composto da classi dette "DAO" (Data Access Object): incapsulano la logica di connessione e le istruzioni SQL (in questo caso una sola) classi dette Value Objects o DTO (Data Transfer Object) sevono per rappresentare "a oggetti" i dati relazionali Strati di servizio/applicazione Strato di persistenza (un db MS Access) Servizio/ Applicazione Dominio Persistenza 35

36 Esempio: sito WEB di una catena di librerie Class Diagram Dominio DAO Value Objects 36

37 Esempio: sito WEB di una catena di librerie I metodi principali della classe Libreria public Libreria(fonteDatiODBC, userodbc, passwordodbc): costrutt. public Collection ricercapergenere(string genere): restituisce una Collection di oggetti di tipo Libro con il genere passato come parametro. public Collection ricercaperautore(string nome): restituisce una Collection di oggetti di tipo Libro scritti dall autore passato come param. public Collection ricercapertitolo(string titolo):restituisce una Collection contenente gli oggetti di tipo Libro che hanno il titolo passato come parametro. public void inseriscilibro(libro l): insert nel database dei dati dell oggetto Libro private int inserisciautore(autore a): insert nel database dei dati dell oggetto Autore. Ritorna il codiceautore, un numero che identifica univocamente l autore. public void aggiornacopie(string g ISBN,String lib,int copie): Aggiorna le copie del libro ISBN della libreria lib. Copie può essere positivo o negativo public Libro getschedalibro(string ISBN): restituisce l oggetto di tipo Libro che ha come ISBN il codice passato come parametro 37

38 Implementazione:il DB Access libreria.mdb AUTORE Cod_autore Cognome Nome Anno di nascita Luogo di nascita 0 Melville Herman 1819 New York 1 Hesse Herman 1847 Estonia 3 Dick Philip 1920 New York 4 Hofstader Douglas 1945 New York 5 Russel Bertrand 1872 New York 6 Pirsig Robert 1928 Minnesota 7 Clarke Arthur 1917 Inghilterra COPIE Libreria ISBN Copie X LIBRERIA Cod_Libreria Nome 1 Feltrinelli 2 Apogeo 3Ricordi 38

39 Implementazione:il DB Access libreria.mdb LIBRO ISBN Titolo Editore Anno Cod_autor Cod genere Prezzo Ubik Fanucci L Storia della filosofia occidentale Mondadori L Amicizia Newton L X Knulp Newton L Lo Zen e l'arte della manutenz Adelphi L Goedel, Escher, Bach Adelphi L Moby Dick Adelphi L Lila Adelphi L X 2001: Odissea nello spazio Mondadori L GENERE Cod_genere Genere 0 Saggio 1 Romanzo 2 Fantascienza 3 Giallo 39

40 Value Objects: Libro class Libro { // serve ha mantenere tutte le informazioni di String ISBN; //un Libro compreso i dettagli sull autore String titolo; String editore; int anno; Autore autore; String genere; int prezzo; Libro (String ISBN, String titolo, String editore, Int anno, Autore autore, String genere, Int prezzo) { this.isbn=isbn; this.titolo=titolo; titolo titolo.. this.autore=autore; } public String getisbn() { return ISBN;} public void setisbn(string ISBN) { this.isbn=isbn;}... 40

41 Value Objects: Autore class Autore { // serve ha mantenere tutte le informazioni // su un autore String nome; String cognome; int datadinascita; String luogodinascita; Autore (String nome, String cognome, int datadinascita, String luogodinascita) { this.nome=nome; this.cognome=cognome; g... } public String getnome() { return nome;} public void setnome(string nome) { this.nome=nome;}... 41

42 Libreria: implementazione del costruttore import java.sql.*; import java.io.*; import java.util.*; class Libreria { Connection con=null; Statement stmt=null; String fontedatiodbc=null; null; String userodbc=null; String passwordodbc=null; Libreria(String fontedatiodbc,string userodbc, String passwordodbc) // costruttore { this.fontedatiodbc= fontedatiodbc; this.userodbc= userodbc; this.passwordodbc= passwordodbc; } 42

43 Libreria:implementazione di metodi di utilità... private ResultSet executequery(string Query) { // questo metodo serve solo per catturare le eccezioni del metodo // executequery ResultSet rs=null; try { rs=stmt.executequery(query); } catch(sqlexception e) { System.out.println("Problemi con l'esecuzione della Query SQL: "+ Query);} return(rs); } 43

44 Libreria:implementazione di metodi di utilità private void createconnection() { try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // carico il driver JdbcOdbc } catch(classnotfoundexception e) { System.out.println("Driver Jdbc-Odbc non presente"+e.getmessage()); } String url="jdbc:odbc:"+fontedatiodbc; Try { con = DriverManager.getConnection(url, userodbc, passwordodbc); //eseguo la connessione stmt=con.createstatement(); // creo un oggetto di tipo Statement } catch(sqlexception e) { System.out.println("Problemi i nella apertura di sessione con la fonte dati "+ fontedatiodbc+"\n"+"verificare l'esistenza della fontedati e la correttezza di User e Password");} } private void closeconnection() { Con.close(); Con=null; Stmt=null} 44

45 Libreria:implementazione di ricercapergenere public Collection ricercapergenere(string genere) { createconnection(); String Query="SELECT ISBN,Titolo,Editore,Anno,Genere,Prezzp, " Cognome,Nome,Anno_di_Nascita," " Luogo_di_Nascita "+ "FROM Genere, Libro, Autore"+ "WHERE Genere.Cod_genere=Libro.Cod_genere "+ "AND Genere.genere = '"+genere+"'"+ "AND Libro.cod_autore=Autore.cod_autore"; Collection a = new ArrayList(); ResultSet rs=null; rs=executequery(query); try { while (rs.next()) { Autore autore= new Autore(rs.getString(7),rs.getString(8), rs.getstring(9), rs.getstring(10)); Libro libro= new Libro(rs.getString(1),rs.getString(2),rs.getString(3),rs.getString(4), rs.getstring(5), rs.getstring(6),autore); a.add(libro); } } catch(sqlexception e) {System.out.println("Errore nella navigazione del ResultSet");} closeconnection(); return a;} 45

46 Libreria: implementazione di inserisciautore private int inserisciautore(autore a) { // la classe Autore ha solo metodi setter e createconnection(); // getter per le variabili cognome, nome, int cod_autore=0; // annodinascita, luogodinascita String query="select * "+ // verifico se l autore è già presente "FROM Autore "+ "WHERE Nome='"+a +a.getnome()+ getnome()+"' and Cognome='"+a +a.getcognome()+ getcognome()+" "; try { ResultSet rs=executequery(query); if (rs.next()) { cod_autore=rs.getint("cod_autore"); closeconnection(); return(cod_autore); // se è gia presente retituisco il codice relativo } query="select MAX(Cod_autore) FROM Autore"; // altrimenti seleziono il massimo Cod autore ResultSet rs=executequery(query); rs.next(); cod_autore=rs.getint(1)+1; // il nuovo Cod_autore è il max + 1 Query="INSERT INTO AUTORE (cod_autore,cognome,nome,anno_di_nascita,luogo_di_nascita) "+ " VALUES ("+cod_autore+",'"+a.getcognome()+"','"+a.getnome()+"',"+ a.getannodinascita()+",'"+a.getluogodinascita()+"')"; getluogodinascita()+"')" int rc=executeupdate(query); } catch(sqlexception e) {System.out.println("Errore nella navigazione del ResultSet");}} closeconnection();} 46

47 Libreria: implementazione di inseriscilibro public void inseriscilibro(libro l) { // la classe Libro ha solo metodi createconnection(); // setter e getter per le variabili ISBN,Titolo,. String stmt="select * "+ "FROM Libro "+ "WHERE ISBN='"+l.getISBN(); try { ResultSet rs=executequery(stmt); if (!rs.next()) // se non è gia presente lo inserisco { stmt="select t Cod Genere) e e) "+ // seleziono e o il codice ce genere e e dalla a descrizione e " FROM Genere"+ // suppongo che i generi siano precaricati nel DB " WHERE Genere.Genere="+l.getGenere(); ResultSet rs=executequery(stmt); rs.next(); int codgenere=rs.getint(1); rs.getint(1); int codautore=inserisciautore(l.getautore()); //inser. l autore se manca o ricavo il codice stmt="insert INTO Libro (ISBN,Titolo,Editore,Anno,Cod_Autore,Cod_Genere,Prezzo)"+ " VALUES ("+l.getisbn()+","+l.gettitolo()+","+l.geteditore()+","+l.getanno()+","+codautore+ ","+codgenere+","+l.getprezzo()+")";"+codgenere+" "+l int rc=executeupdate(stmt); } catch(sqlexception e) {System.out.println("Errore nella navigazione del ResultSet");}} closeconnection();} 47

48 Libreria: implementazione di aggiornacopie public void aggiornacopie(string ISBN,String lib,int copie) { createconnection(); // ricavo il codice libreria String stmt= "SELECT Cod Libreria i "+ "FROM Libreria "+ "WHERE Libreria.Nome="+lib; try { ResultSet rs=executequery(stmt); rs.next(); int codlibreria=rs.getint(1); String stmt="update Copie SET Copie = Copie+"+copie+ " WHERE ISBN='"+ISBN+"' AND"+ " Libreria="+codLibreria; if (executeupdate(stmt)==0) // il negozio non aveva nemmeno una copia { // inserisco una riga con il numero di copie stmt="insert INTO Copie ( ISBN, Libreria, Copie ) "+ "VALUES('"+ISBN+"',"+lib+","+copie+")"; int rc=executeupdate(stmt); }} catch(sqlexception e) {System.out.println("Errore nella navigazione del ResultSet");} closeconnection();} 48

49 Un esempio di uso della classe Libreria import java.sql.*; import java.io.*;import java.util.*; import Libreria; import Libro; import Autore; class provajdbc{ public static void main(string args[]) throws Exception { Libreria l=new Libreria("libreria","libreria","libreria"); System.out.println(" prima dell inserimento "); Collection c=l.ricercapergenere("romanzo"); Iterator i = c.iterator(); while (i.hasnext()) { Libro libro = (Libro)i.next(); System.out.println(libro.getTitolo()+" "+ libro.getisbn()); } Autore autore=new Autore(); autore.setcognome("pennac"); autore.setnome("daniel"); autore.setannodinascita(1944); autore.setluogodinascita("casablanca"); 49

50 Un esempio di uso della classe Libreria Libro lib=new Libro(); lib.setisbn(" "); lib.settitolo("signor Malaussene"); lib.seteditore("feltrinelli"); lib.setanno(1995); lib.setgenere("romanzo"); lib.setprezzo(20.000); lib.setautore(autore) ; l.inseriscilibro(lib); System.out.println(" dopo l inserimento "); c=l.ricercapergenere("romanzo"); Iterator i = c.iterator(); while (i.hasnext()) { Libro libro = (Libro)i.next(); System.out.println(libro.getTitolo()+" "+ libro.getisbn()); } } } 50

51 Esecuzione di provajdbc C:\jdk1.3.1_03>java provajdbc prima dell'inserimento Lo Zen e l'arte della manutenzione della motocicletta Lila Moby Dick Knulp X Amicizia dopo l'inserimento Lo Zen e l'arte della manutenzione della motocicletta Lila Moby Dick Knulp X Amicizia Signor Malaussene C:\jdk1.3.1_03> 51

52 Impostazione della fonte dati "libreria" 1) Add di una nuova fonte dati dal Data Source Administrator 52

JAVA JDBC. Andrea BEI (andrea.bei@libero.it)

JAVA JDBC. Andrea BEI (andrea.bei@libero.it) JAVA JDBC Andrea BEI (andrea.bei@libero.it) JDBC: API JDBC (Java DataBase Connectivity) è una API per l accesso a DataBase relazionali sviluppata da SUN. Permette ad applicazioni JAVA di eseguire istruzioni

Dettagli

JDBC. A. Bechini 2004. Accesso a DataD con Java

JDBC. A. Bechini 2004. Accesso a DataD con Java JDBC Accesso a DataD atabase ase con Java Utilizzo di DB da applicazioni esterne Un DB contiene e gestisce dati, importanti per varie operazioni supportate da applicazioni software Come può un applicazione

Dettagli

Introduzione JDBC interfaccia java.sql driver caricare i driver

Introduzione JDBC interfaccia java.sql driver caricare i driver J D B C DISPENSE Introduzione JDBC (Java Database Connectivity) è un interfaccia completamente Java utilizzata per eseguire istruzioni SQL sui database. L'API JDBC si trova nel pacchetto java.sql; contiene

Dettagli

Non si deve fare ALCUN riferimento alla parte specifica di JDBC.

Non si deve fare ALCUN riferimento alla parte specifica di JDBC. Un applicazione per la quale sia fondamentale l indipendenza dal Database può essere scritta in Java usando le specifiche. (Package java.sql) Non devono essere usate chiamate specifiche del database: Si

Dettagli

JDBC versione base. Le classi/interfacce principali di JDBC

JDBC versione base. Le classi/interfacce principali di JDBC JDBC versione base Java Database Connectivity è il package Java per l accesso a database relazionali il package contiene interfacce e classi astratte uno dei pregi è la completa indipendenza del codice

Dettagli

JDBC di base. Le classi/interfacce principali di JDBC

JDBC di base. Le classi/interfacce principali di JDBC JDBC di base Java Database Connectivity è il package Java per l accesso a database relazionali il package contiene interfacce e classi astratte completa indipendenza del codice dal tipo di database o di

Dettagli

CORSO DI ALGORITMI E PROGRAMMAZIONE. JDBC Java DataBase Connectivity

CORSO DI ALGORITMI E PROGRAMMAZIONE. JDBC Java DataBase Connectivity CORSO DI ALGORITMI E PROGRAMMAZIONE JDBC Java DataBase Connectivity Anno Accademico 2002-2003 Accesso remoto al DB Istruzioni SQL Rete DataBase Utente Host client Server di DataBase Host server Accesso

Dettagli

JDBC per l accesso Java a DB. Tito Flagella tito@link.it

JDBC per l accesso Java a DB. Tito Flagella tito@link.it JDBC per l accesso Java a DB Tito Flagella tito@link.it JDBC fornisce una libreria standard per l accesso a database relazionali Non è un acronimo ufficiale ma è comunemente interpretato come Java DataBase

Dettagli

JDBC: Introduzione. Java Database Connectivity (JDBC): parte 1. Schema dei legami tra le classi principali. Principali classi/interfacce di JDBC

JDBC: Introduzione. Java Database Connectivity (JDBC): parte 1. Schema dei legami tra le classi principali. Principali classi/interfacce di JDBC JDBC: Introduzione Java Database Connectivity (JDBC): parte 1 Gianluca Moro DEIS - Università di Bologna gmoro@deis.unibo.it Java Database Connectivity è il package Java per l accesso a database relazionali

Dettagli

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS) 1 SQL Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS) a.a. 2014/2015 http://www.di.uniba.it/~lisi/courses/basi-dati/bd2014-15.htm Dott.ssa Francesca A. Lisi dott.ssa Francesca A.

Dettagli

Programmazione Java Avanzata Spring - JDBC

Programmazione Java Avanzata Spring - JDBC Programmazione Java Avanzata Spring - JDBC Ing. Gianluca Caminiti Riferimenti Spring http://www.springsource.org/ (scaricate il reference) Beginning Spring 2 - From Novice to Professional. APress. 2008

Dettagli

Esercitazione su JDBC

Esercitazione su JDBC Esercitazione su JDBC Basi di Dati L Ingegneria dei Processi Gestionali (Ilaria Bartolini - Roberto Cabras) come usare SQL (1) Le istruzioni SQL possono essere eseguite interattivamente Ese JDBC 2 come

Dettagli

Scheda 15 Accedere ai DataBase con JDBC

Scheda 15 Accedere ai DataBase con JDBC Scheda 15 Accedere ai DataBase con JDBC G IOVANNI PULITI Panoramica: che cosa è JDBC La API JDBC, introdotta per la prima volta con il JDK 1.0, è una API che permette di accedere a database relazionali

Dettagli

Basi di dati e Web (Moduli: Laboratorio e Siti Web centrati sui Dati) Prova scritta del 14 luglio 2008

Basi di dati e Web (Moduli: Laboratorio e Siti Web centrati sui Dati) Prova scritta del 14 luglio 2008 Basi di dati e Web (Moduli: Laboratorio e Siti Web centrati sui Dati) Prova scritta del 14 luglio 2008 Avvertenze: e severamente vietato consultare libri e appunti; chiunque verrà trovato in possesso di

Dettagli

Caricamento della classe driver. Apertura della connessione. DriverManager.getConnection() Creazione di uno statement

Caricamento della classe driver. Apertura della connessione. DriverManager.getConnection() Creazione di uno statement JDBC Programmazione in Ambienti Distribuiti V 1.4 Marco Torchiano 2006 Uso di JDBC Caricamento della classe driver Class.forName() Apertura della connessione DriverManager.getConnection() Creazione di

Dettagli

Lezione 9. Applicazioni tradizionali

Lezione 9. Applicazioni tradizionali Lezione 9 Applicazioni tradizionali Pag.1 Sommario Concetti trattati in questa lezione: SQL nel codice applicativo Cursori API native ODBC Pag.2 SQL nel codice applicativo I comandi SQL possono essere

Dettagli

Corso di Informatica Modulo T3 B2 - Database in rete

Corso di Informatica Modulo T3 B2 - Database in rete Corso di Informatica Modulo T3 B2 - Database in rete 1 Prerequisiti Programmazione web Applicazione web Modello OSI Architettura client/server Conoscenze generali sui database Tecnologia ADO in Visual

Dettagli

DBMS ed Applicazioni Motivazioni

DBMS ed Applicazioni Motivazioni DBMS ed Applicazioni Motivazioni Sin ora abbiamo visto SQL come linguaggio per interrogare DBMS da interfaccia interattiva Nella pratica, un efficace sfruttamento delle potenzialità dei DBMS deriva dalla

Dettagli

Siti web centrati sui dati Architettura MVC-2: i JavaBeans

Siti web centrati sui dati Architettura MVC-2: i JavaBeans Siti web centrati sui dati Architettura MVC-2: i JavaBeans 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con

Dettagli

Java: la libreria delle classi

Java: la libreria delle classi Java: la libreria delle classi Applet anatomia di un applet cenni di html La libreria JDBC per l accesso ai database il package java.sql 213 Applet Un applet è una applicazione Java che ha una forma particolare

Dettagli

Come trattare il risultato di un comando SQL (relazioni) che

Come trattare il risultato di un comando SQL (relazioni) che USO DI SQL DA PROGRAMMI: PROBLEMI 1 Come collegarsi alla BD Come trattare gli operatori SQL Come trattare il risultato di un comando SQL (relazioni) che Come scambiare informazioni sull esito delle operazioni.

Dettagli

Architettura MVC-2: i JavaBeans

Architettura MVC-2: i JavaBeans Siti web centrati sui dati Architettura MVC-2: i JavaBeans Alberto Belussi anno accademico 2008/2009 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con

Dettagli

Laboratorio di reti II: Gestione di database lato server

Laboratorio di reti II: Gestione di database lato server Laboratorio di reti II: Gestione di database lato server Stefano Brocchi brocchi@dsi.unifi.it 23 marzo, 2009 Stefano Brocchi Laboratorio di reti II: Database 23 marzo, 2009 1 / 32 Uso di database lato

Dettagli

SWIM v2 Design Document

SWIM v2 Design Document PROGETTO DI INGEGNERIA DEL SOFTWARE 2 SWIM v2 DD Design Document Matteo Danelli Daniel Cantoni 22 Dicembre 2012 1 Indice Progettazione concettuale Modello ER Entità e relazioni nel dettaglio User Feedback

Dettagli

Basi di Dati Esercitazione JDBC. Giugno 2007

Basi di Dati Esercitazione JDBC. Giugno 2007 Basi di Dati Esercitazione JDBC Giugno 2007 Esercizi Considerando il seguente schema: Fornitori (CodiceFornitore, Nome, Indirizzo, Citta) Prodotti (CodiceProdotto, Tipo, Marca, Modello) Catalogo (CodiceFornitore,

Dettagli

JDBC Driver Manager. JDBC Architettura generale. JDBC - Tipi di dato. JDBC - Flusso applicativo. JDBC - Tipi di dato. ODBC Driver. Livello di gestione

JDBC Driver Manager. JDBC Architettura generale. JDBC - Tipi di dato. JDBC - Flusso applicativo. JDBC - Tipi di dato. ODBC Driver. Livello di gestione Interfacce DBMS in breve Corso di BD1 Ripasso comandi applicazione JDBC Manipolazione estensioni OR in JDBC Interfacce per DBMS Problema: Far accedere un applicazione ad una base di dati Soluzione: Librerie

Dettagli

PROVA FINALE Ingegneria del software

PROVA FINALE Ingegneria del software PROVA FINALE Ingegneria del software Ing. Jody Marca jody.marca@polimi.it Laboratorio N 4 Cos è JDBC 2 JDBC significa Java Database Connectivity Standard definito da Sun MicroSystems per connettere programmi

Dettagli

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 6

Data Base. Master Bio Info Reti e Basi di Dati Lezione 6 Data Base 1 Sommario I concetti fondamentali. Database Relazionale.. Query e SQL MySql, Creazione di un db in MySQL con PHPmyAdmin Creazione database e delle Tabelle Query Inserimento Ricerca Modifica

Dettagli

Introduzione. 8- Programmazione di una base di dati attraverso JDBC ESEMPIO

Introduzione. 8- Programmazione di una base di dati attraverso JDBC ESEMPIO 8- Programmazione di una base di dati attraverso JDBC Introduzione ai differenti approcci - JDBC: Architettura e Programmazione Introduzione Nella pratica gli utenti finali accedono al contenuto di una

Dettagli

Protocolli e architetture per WIS

Protocolli e architetture per WIS Protocolli e architetture per WIS Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di informazioni e servizi Le architetture moderne dei WIS

Dettagli

Candidato: Luca Russo Docente: Prof. Raffaele Montella. 27 Marzo 2013

Candidato: Luca Russo Docente: Prof. Raffaele Montella. 27 Marzo 2013 e di e di Candidato: Luca Russo Docente: Corso di laurea in Informatica Applicata Facoltá di Scienze e Tecnologie Programmazione su Reti 27 Marzo 2013 Traccia d esame Sviluppare multitier con disaccoppiamento

Dettagli

Accesso a Database con JDBC

Accesso a Database con JDBC 1 Sommario Accesso a Database con JDBC Introduzione architettura generale di riferimento flusso tipico delle applicazioni ODBC/JDBC ODBC architettura il flusso generale di un applicazione ODBC JDBC architettura

Dettagli

Sviluppo Applicazioni Mobile Lezione 12 JDBC. Dr. Paolo Casoto, Ph.D - 2012

Sviluppo Applicazioni Mobile Lezione 12 JDBC. Dr. Paolo Casoto, Ph.D - 2012 + Sviluppo Applicazioni Mobile Lezione 12 JDBC + Cosa vediamo nella lezione di oggi Oggi analizzeremo insieme una specifica tecnologia Java per l accesso e la manipolazione di basi di dati relazionali

Dettagli

Application Server per sviluppare applicazioni Java Enterprise

Application Server per sviluppare applicazioni Java Enterprise Application Server per sviluppare applicazioni Java Enterprise Con il termine Application Server si fa riferimento ad un contenitore, composto da diversi moduli, che offre alle applicazioni Web un ambiente

Dettagli

CORSO DI PROGRAMMAZIONE JAVA

CORSO DI PROGRAMMAZIONE JAVA CORSO DI PROGRAMMAZIONE JAVA Corso di Programmazione Java Standard Edition ( MODULO A) OBIETTIVI ll corso ha come obiettivo quello di introdurre la programmazione a oggetti (OOP) e di fornire solide basi

Dettagli

Applicazione: GAS - Gestione AcceSsi

Applicazione: GAS - Gestione AcceSsi Riusabilità del software - Catalogo delle applicazioni Gestione ICT Applicazione: GAS - Gestione AcceSsi Amministrazione: Consiglio Nazionale delle Ricerche (CNR) Responsabile dei sistemi informativi Nome

Dettagli

Architettura MVC-2 A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 2 / 2 0 1 3

Architettura MVC-2 A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 2 / 2 0 1 3 Architettura MVC-2 A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 2 / 2 0 1 3 Verso l architettura MVC-2 2 Il secondo passo verso l architettura MVC-2 è quello di separare il controllo dell

Dettagli

JDBC: Java e database.

JDBC: Java e database. JDBC: Java e database. Introduzione all architettura e esempi di utilizzo 1.0 INTRODUZIONE ALL ARCHITETTURA JDBC è (anche se non ufficialmente riconosciuto da Sun) l acronimo per Java DataBase Connectivity.

Dettagli

UNIVERSITA DI FIRENZE Facoltà di Ingegneria. Persistenza Applicazioni Enterprise Uso dei modelli

UNIVERSITA DI FIRENZE Facoltà di Ingegneria. Persistenza Applicazioni Enterprise Uso dei modelli UNIVERSITA DI FIRENZE Facoltà di Ingegneria Persistenza Applicazioni Enterprise Uso dei modelli 1 IL problema della persistenza APPLICAZIONE (programmi) (oggetti) DATI PERSISTENTI (file, record) (basi

Dettagli

PROGRAMMA CORSO Analista Programmatore JAVA - ORACLE

PROGRAMMA CORSO Analista Programmatore JAVA - ORACLE PROGRAMMA CORSO Analista Programmatore JAVA - ORACLE 1. JAVA 1.1 Introduzione a Java Introduzione Cosa è Java 1.2 Sintassi e programmazione strutturata variabili e metodi tipi di dati, array operatori

Dettagli

Connessione ad una fonte di dati ODBC

Connessione ad una fonte di dati ODBC Linguaggio Java JDBC L architettura JDBC: driver, connessione, statement e result set Invio di comandi SQL Transazioni: COMMIT, ROLLBACK e livelli di isolamento Utizzo avanzato dei result set: cenni Connessione

Dettagli

Dispensa di database Access

Dispensa di database Access Dispensa di database Access Indice: Database come tabelle; fogli di lavoro e tabelle...2 Database con più tabelle; relazioni tra tabelle...2 Motore di database, complessità di un database; concetto di

Dettagli

Al giorno d oggi, i sistemi per la gestione di database

Al giorno d oggi, i sistemi per la gestione di database Introduzione Al giorno d oggi, i sistemi per la gestione di database implementano un linguaggio standard chiamato SQL (Structured Query Language). Fra le altre cose, il linguaggio SQL consente di prelevare,

Dettagli

Linguaggio SQL: costrutti avanzati

Linguaggio SQL: costrutti avanzati Linguaggio SQL: costrutti avanzati Gestione delle transazioni Introduzione Transazioni in SQL Proprietà delle transazioni 2 Pag. 1 1 Gestione delle transazioni Esempio applicativo Operazioni bancarie operazione

Dettagli

19. LA PROGRAMMAZIONE LATO SERVER

19. LA PROGRAMMAZIONE LATO SERVER 19. LA PROGRAMMAZIONE LATO SERVER Introduciamo uno pseudocodice lato server che chiameremo Pserv che utilizzeremo come al solito per introdurre le problematiche da affrontare, indipendentemente dagli specifici

Dettagli

JDBC. Paolo Atzeni. 11 marzo Progettazione di applicazioni, una premessa

JDBC. Paolo Atzeni. 11 marzo Progettazione di applicazioni, una premessa JDBC Paolo Atzeni 11 marzo 2002 Progettazione di applicazioni, una premessa Il paradigma a tre livelli (three-tier) JDBC: la API per far interagire applicazioni Java con basi di dati marzo 2002 P. Atzeni,

Dettagli

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone BASI DI DATI per la gestione dell informazione Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone Libro di Testo 22 Chianese, Moscato, Picariello e Sansone BASI DI DATI per la Gestione dell

Dettagli

Database e reti. Piero Gallo Pasquale Sirsi

Database e reti. Piero Gallo Pasquale Sirsi Database e reti Piero Gallo Pasquale Sirsi Approcci per l interfacciamento Il nostro obiettivo è, ora, quello di individuare i possibili approcci per integrare una base di dati gestita da un in un ambiente

Dettagli

Esercitazione 4 JDBC

Esercitazione 4 JDBC JDBC Obiettivi dell esercitazione Familiarizzare con l'organizzazione dell'ambiente di lavoro per la realizzazione di applicazioni Java Utilizzare i costrutti di base della libreria JDBC per 1. la gestione

Dettagli

1. BASI DI DATI: GENERALITÀ

1. BASI DI DATI: GENERALITÀ 1. BASI DI DATI: GENERALITÀ BASE DI DATI (DATABASE, DB) Raccolta di informazioni o dati strutturati, correlati tra loro in modo da risultare fruibili in maniera ottimale. Una base di dati è usualmente

Dettagli

Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA

Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA Salerno Formazione, società operante nel settore della didattica, della formazione professionale e certificata

Dettagli

Pag. 1. Gestione delle transazioni. Linguaggio SQL: costrutti avanzati. Esempio applicativo. Gestione delle transazioni. Prelievo. Esempio applicativo

Pag. 1. Gestione delle transazioni. Linguaggio SQL: costrutti avanzati. Esempio applicativo. Gestione delle transazioni. Prelievo. Esempio applicativo Gestione delle transazioni Introduzione Transazioni in SQL Linguaggio SQL: costrutti avanzati 2 applicativo Operazioni bancarie operazione di prelievo dal proprio conto corrente mediante bancomat Gestione

Dettagli

SQL e applicazioni. Capitolo 8. SQL e linguaggi di programmazione. Applicazioni ed SQL: architettura. Una difficoltà importante.

SQL e applicazioni. Capitolo 8. SQL e linguaggi di programmazione. Applicazioni ed SQL: architettura. Una difficoltà importante. SQL e applicazioni Capitolo 8 Applicazioni tradizionali In applicazioni complesse, l utente non vuole eseguire comandi SQL, ma programmi, con poche scelte SQL non basta, sono necessarie altre funzionalità,

Dettagli

Capitoli 8 e 9. SQL embedded. Applicazioni tradizionali Applicazioni Internet. Sistemi di basi di dati Raghu Ramakrishnan, Johannes Gehrke

Capitoli 8 e 9. SQL embedded. Applicazioni tradizionali Applicazioni Internet. Sistemi di basi di dati Raghu Ramakrishnan, Johannes Gehrke Capitoli 8 e 9 Applicazioni tradizionali Applicazioni Internet SQL embedded SQL nel codice applicativo I comandi SQL possono essere chiamati dall interno di un programma in un linguaggio ospite (ad esempio

Dettagli

Azioni. Select e join non consentono di modificare il contenuto del DB. Inserzione di nuovi dati. Azioni desiderate. Aggiornamento di dati

Azioni. Select e join non consentono di modificare il contenuto del DB. Inserzione di nuovi dati. Azioni desiderate. Aggiornamento di dati Azioni Select e join non consentono di modificare il contenuto del DB Azioni desiderate Inserzione di nuovi dati Aggiornamento di dati Cancellazione di dati Aggiunta di un record insert into utenti(nome,tel,codice_u)

Dettagli

Progetto di Applicazioni Software

Progetto di Applicazioni Software Progetto di Applicazioni Software Antonella Poggi Dipartimento di Informatica e Sistemistica Antonio Ruberti SAPIENZA Università di Roma Anno Accademico 2008/2009 Questi lucidi sono stati prodotti sulla

Dettagli

DATABASE. www.andreavai.it

DATABASE. www.andreavai.it Cos'è un database? Quando si usa? Differenze con i fogli elettronici Le tabelle: record, campi, tipi di dati Chiavi e indici Database relazionali (R-DBMS) Relazioni uno-a-uno Relazioni uno-a-molti Relazioni

Dettagli

UNIVERSITA DI FIRENZE Facoltà di Ingegneria. Persistenza Applicazioni Enterprise Uso dei modelli

UNIVERSITA DI FIRENZE Facoltà di Ingegneria. Persistenza Applicazioni Enterprise Uso dei modelli UNIVERSITA DI FIRENZE Facoltà di Ingegneria Persistenza Applicazioni Enterprise Uso dei modelli 1 IL problema della persistenza APPLICAZIONE (programmi) (oggetti) DATI PERSISTENTI (file, record) (basi

Dettagli

Tecnologia e Applicazioni Internet 2011/12

Tecnologia e Applicazioni Internet 2011/12 Tecnologia e Applicazioni Internet 2011/12 Lezione 4 - Persistenza Matteo Vaccari http://matteo.vaccari.name/ matteo.vaccari@uninsubria.it Perché usare un DB relazionale? Per l accesso concorrente ai dati

Dettagli

Laboratorio di Basi di Dati

Laboratorio di Basi di Dati Laboratorio di Basi di Dati Docente: Alberto Belussi Lezione 9 Architettura Model-View-Controller (MVC) Adottando l'architettura MVC e la tecnologia Servlet-JSP, un'applicazione web può essere realizzata

Dettagli

J2EE (o JEE): Framework Java per lo sviluppo di applicazioni WEB Enterprise, che vivono in rete e che siano accessibili attraverso browser.

J2EE (o JEE): Framework Java per lo sviluppo di applicazioni WEB Enterprise, che vivono in rete e che siano accessibili attraverso browser. Il Pattern MVC J2EE (o JEE): Framework Java per lo sviluppo di applicazioni WEB Enterprise, che vivono in rete e che siano accessibili attraverso browser. Il famework Sun J2EE Component, Container e Connector:

Dettagli

Una metodologia di progettazione di applicazioni web centrate sui dati

Una metodologia di progettazione di applicazioni web centrate sui dati Una metodologia di progettazione di applicazioni web centrate sui dati A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 1 / 2 0 1 2 Progettazione logica di un sito web centrato sui dati Si

Dettagli

Tecnologia di un Database Server (centralizzato) Introduzione generale

Tecnologia di un Database Server (centralizzato) Introduzione generale Introduzione Basi di Dati / Complementi di Basi di Dati 1 Tecnologia di un Database Server (centralizzato) Introduzione generale Angelo Montanari Dipartimento di Matematica e Informatica Università di

Dettagli

Quando si sa chiaramente come si deve comportare l applicazione si può analizzare una possibile soluzione applicativa.

Quando si sa chiaramente come si deve comportare l applicazione si può analizzare una possibile soluzione applicativa. Introduzione alla tecnologia JMX 1 Viene analizzata l architettura sottostante le Java Managment Extensions (JMX) mostrandone un utilizzo applicativo e analizzando altri possibili scenari d uso di Ivan

Dettagli

Accesso Web a Data Base

Accesso Web a Data Base Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB Accesso Web a Data Base Ing. Marco Mamei Anno Accademico 2004-2005 M. Mamei -

Dettagli

Introduzione all Architettura del DBMS

Introduzione all Architettura del DBMS Introduzione all Architettura del DBMS Data Base Management System (DBMS) Un DBMS è uno strumento per la creazione e la gestione efficiente di grandi quantità di dati che consente di conservarli in modo

Dettagli

Panoramica: che cosa è necessario

Panoramica: che cosa è necessario Scheda 02 L installazione dell SDK G IOVANNI PULITI Panoramica: che cosa è necessario Per poter lavorare con applicazioni Java o crearne di nuove, il programmatore deve disporre di un ambiente di sviluppo

Dettagli

JDBC. Marco Tessarotto Programmazione dei Web Server Anno Accademico

JDBC. Marco Tessarotto Programmazione dei Web Server Anno Accademico JDBC Marco Tessarotto Programmazione dei Web Server Anno Accademico 2004-2005 JDBC JDBC (Java Database Connectivity) è una API Java per accedere ed elaborare dati in una sorgente dati (di solito un db

Dettagli

Siti web centrati sui dati (Data-centric web applications)

Siti web centrati sui dati (Data-centric web applications) Siti web centrati sui dati (Data-centric web applications) 1 A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 2 / 2 0 1 3 WEB La tecnologia del World Wide Web (WWW) costituisce attualmente

Dettagli

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software di sistema e software applicativo I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software soft ware soffice componente è la parte logica

Dettagli

Lezione V. Aula Multimediale - sabato 29/03/2008

Lezione V. Aula Multimediale - sabato 29/03/2008 Lezione V Aula Multimediale - sabato 29/03/2008 LAB utilizzo di MS Access Definire gli archivi utilizzando le regole di derivazione e descrivere le caratteristiche di ciascun archivio ASSOCIAZIONE (1:1)

Dettagli

DBMS (Data Base Management System)

DBMS (Data Base Management System) Cos'è un Database I database o banche dati o base dati sono collezioni di dati, tra loro correlati, utilizzati per rappresentare una porzione del mondo reale. Sono strutturati in modo tale da consentire

Dettagli

Progettazione: Tecnologie e ambienti di sviluppo

Progettazione: Tecnologie e ambienti di sviluppo Contratto per l acquisizione di servizi di Assistenza specialistica per la gestione e l evoluzione del patrimonio software della Regione Basilicata. Repertorio n. 11016 del 25/09/2009 Progettazione: Tecnologie

Dettagli

Concetti base. Impianti Informatici. Web application

Concetti base. Impianti Informatici. Web application Concetti base Web application La diffusione del World Wide Web 2 Supporto ai ricercatori Organizzazione documentazione Condivisione informazioni Scambio di informazioni di qualsiasi natura Chat Forum Intranet

Dettagli

L architettura di un DBMS

L architettura di un DBMS L architettura di un DBMS sources: Lucidi del corso di Lucidi del corso di Laboratorio di Basi di dati e sistemi informativi, Montesi, Magnani, Corso di laurea in Informatica per il management, Scienze

Dettagli

PROGETTAZIONE E SVILUPPO DI UN. Relatore: Studente: Paolo Merialdo Valerio Barbagallo

PROGETTAZIONE E SVILUPPO DI UN. Relatore: Studente: Paolo Merialdo Valerio Barbagallo PROGETTAZIONE E SVILUPPO DI UN SIMULATORE ECONOMICO FISCALE Relatore: Studente: Paolo Merialdo Valerio Barbagallo Sommario il problema: gestione e ottimizzazione del bilancio piattaforma J2EE e framework

Dettagli

Informatica Generale Andrea Corradini. 19 - Sistemi di Gestione delle Basi di Dati

Informatica Generale Andrea Corradini. 19 - Sistemi di Gestione delle Basi di Dati Informatica Generale Andrea Corradini 19 - Sistemi di Gestione delle Basi di Dati Sommario Concetti base di Basi di Dati Il modello relazionale Relazioni e operazioni su relazioni Il linguaggio SQL Integrità

Dettagli

Università degli studi Roma Tre Dipartimento di informatica ed automazione. Tesi di laurea

Università degli studi Roma Tre Dipartimento di informatica ed automazione. Tesi di laurea Università degli studi Roma Tre Dipartimento di informatica ed automazione Tesi di laurea Reingegnerizzazione ed estensione di uno strumento per la generazione di siti Web Relatore Prof. P.Atzeni Università

Dettagli

Data Base Management System. Strumenti: Formato: Pro: Contro: Software specifico. Proprietario

Data Base Management System. Strumenti: Formato: Pro: Contro: Software specifico. Proprietario Data Base Management System Strumenti: Software specifico Formato: Pro: Proprietario Massima semplicità di inserimento e gestione Tipizzazione Validazione dei dati Contro: Creazione del database Programmazione

Dettagli

Indice. Java. JDBC è l interfaccia di base standard di Java ai database relaionali

Indice. Java. JDBC è l interfaccia di base standard di Java ai database relaionali Java java database connectivity -- jdbc G. Prencipe prencipe@di.unipi.it Indice JDBC: Java Data Base Connectivity connessioni a basi di dati esecuzione di statement SQL accesso ai result set JDBC: Java

Dettagli

MetaMAG METAMAG 1 IL PRODOTTO

MetaMAG METAMAG 1 IL PRODOTTO METAMAG 1 IL PRODOTTO Metamag è un prodotto che permette l acquisizione, l importazione, l analisi e la catalogazione di oggetti digitali per materiale documentale (quali immagini oppure file di testo

Dettagli

Le Basi di Dati. Le Basi di Dati

Le Basi di Dati. Le Basi di Dati Le Basi di Dati 20/05/02 Prof. Carlo Blundo 1 Le Basi di Dati Le Base di Dati (database) sono un insieme di tabelle di dati strutturate in maniera da favorire la ricerca di informazioni specializzate per

Dettagli

Access. P a r t e p r i m a

Access. P a r t e p r i m a Access P a r t e p r i m a 1 Esempio di gestione di database con MS Access 2 Cosa è Access? Access e un DBMS che permette di progettare e utilizzare DB relazionali Un DB Access e basato sui concetti di

Dettagli

I database relazionali (Access)

I database relazionali (Access) I database relazionali (Access) Filippo TROTTA 04/02/2013 1 Prof.Filippo TROTTA Definizioni Database Sistema di gestione di database (DBMS, Database Management System) Sistema di gestione di database relazionale

Dettagli

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci Corso di Laurea Magistrale in Ingegneria per l Ambiente e il Territorio A.A. 2014-2015 Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci Strutture di dati: DB e DBMS DATO E INFORMAZIONE Dato: insieme

Dettagli

Progettaz. e sviluppo Data Base

Progettaz. e sviluppo Data Base Progettaz. e sviluppo Data Base! Progettazione Basi Dati: Metodologie e modelli!modello Entita -Relazione Progettazione Base Dati Introduzione alla Progettazione: Il ciclo di vita di un Sist. Informativo

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Programmazione Web: Architetture versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca mecca@unibas.it

Dettagli

BASE DI DATI: introduzione. Informatica 5BSA Febbraio 2015

BASE DI DATI: introduzione. Informatica 5BSA Febbraio 2015 BASE DI DATI: introduzione Informatica 5BSA Febbraio 2015 Di cosa parleremo? Base di dati relazionali, modelli e linguaggi: verranno presentate le caratteristiche fondamentali della basi di dati. In particolare

Dettagli

Transazioni - Parte 1

Transazioni - Parte 1 Basi di dati II Lezione 3 09/10/2008 Caputo Domenico Cosimo, Francesco Pichierri Transazioni - Parte 1 Le transazioni hanno a che fare con la programmabilità delle basi di dati. Prima di trattarle è necessaria

Dettagli

Caratteristiche principali. Contesti di utilizzo

Caratteristiche principali. Contesti di utilizzo Dalle basi di dati distribuite alle BASI DI DATI FEDERATE Antonella Poggi Dipartimento di Informatica e Sistemistica Antonio Ruberti Università di Roma La Sapienza Anno Accademico 2006/2007 http://www.dis.uniroma1.it/

Dettagli

Informatica DR KLOE Calcolo

Informatica DR KLOE Calcolo Informatica DR KLOE Calcolo Progettazione e gestione sotto il sistema operativo Unix di un database per un esperimento che produce almeno 1200 Terabyte. Informatica DR KLOE Calcolo Tutore: Giuseppe Fortugno

Dettagli

JDBC. Dispense per il corso di Ingegneria del Web

JDBC. Dispense per il corso di Ingegneria del Web JDBC Dispense per il corso di Ingegneria del Web Revisione 05/11 Giuseppe Della Penna (giuseppe.dellapenna@di.univaq.it) Dipartimento di Informatica Università degli studi dell'aquila Java Database Connectivity:

Dettagli

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico Introduzione alle basi di dati Introduzione alle basi di dati Gestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS Gestione delle

Dettagli

ORM: Approccio DAO. Versione preliminare. Antonella Poggi. Dipartimento di informatica e Sistemistica Sapienza Università di Roma

ORM: Approccio DAO. Versione preliminare. Antonella Poggi. Dipartimento di informatica e Sistemistica Sapienza Università di Roma ORM: Approccio DAO Versione preliminare Antonella Poggi Dipartimento di informatica e Sistemistica Sapienza Università di Roma Progetto di Applicazioni Software Anno accademico 2008-2009 Questi lucidi

Dettagli

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati Corso di Access Modulo L2A (Access) 1.1 Concetti di base 1 Prerequisiti Utilizzo elementare del computer Concetti fondamentali di basi di dati 2 1 Introduzione Un ambiente DBMS è un applicazione che consente

Dettagli

Laboratorio di Sistemi Fondamenti di JDBC (parte1) Java. Fondamenti di JDBC

Laboratorio di Sistemi Fondamenti di JDBC (parte1) Java. Fondamenti di JDBC Fondamenti di JDBC Concetto di driver Il dialogo fra applicazione e DBMS non è mai gestito direttamente ma passa in genere per un opportuno modulo software chiamato driver che agisce da interfaccia fra

Dettagli

Java: Compilatore e Interprete

Java: Compilatore e Interprete Java: Compilatore e Interprete Java Virtual Machine Il bytecode non è Linguaggio Macchina. Per diventarlo, deve subire un ulteriore trasformazione che viene operata dall interprete Java in modalità JIT

Dettagli

Basi di dati (3) Ing. Integrazione di Impresa A.A. 2007/08

Basi di dati (3) Ing. Integrazione di Impresa A.A. 2007/08 Università di Modena e Reggio Emilia Panoramica Basi di dati (3) Ing. Integrazione di Impresa A.A. 2007/08 Docente: andrea.bulgarelli@gmail.com Argomento: struttura SQL Server (1.0)! Componenti! Edizioni!

Dettagli

Riccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino

Riccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino Integration Services Project SQL Server 2005 Integration Services Permette di gestire tutti i processi di ETL Basato sui progetti di Business Intelligence di tipo Integration services Project SQL Server

Dettagli