Programmazione Java Avanzata Spring - JDBC



Похожие документы
JDBC. A. Bechini Accesso a DataD con Java

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

Lezione 9. Applicazioni tradizionali

Architettura MVC-2: i JavaBeans

Introduzione JDBC interfaccia java.sql driver caricare i driver

DBMS (Data Base Management System)

JDBC versione base. Le classi/interfacce principali di JDBC

CORSO DI PROGRAMMAZIONE JAVA

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

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

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

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

JDBC di base. Le classi/interfacce principali di JDBC

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

CORSO DI ALGORITMI E PROGRAMMAZIONE. JDBC Java DataBase Connectivity

Scheda 15 Accedere ai DataBase con JDBC

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

Database e reti. Piero Gallo Pasquale Sirsi

PROGRAMMA CORSO Analista Programmatore JAVA - ORACLE

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

Organizzazione delle informazioni: Database

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

Università degli Studi di Bologna Facoltà di Ingegneria. Tecnologie Web L-A A.A Esercitazione 08 DAO e Hibernate

Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

Introduzione alla teoria dei database relazionali. Come progettare un database

Programmazione Java Avanzata Il Framework Spring

Dispensa di database Access

Introduzione al mondo della persistenza. Dott. Doria Mauro

PROVA FINALE Ingegneria del software

1. BASI DI DATI: GENERALITÀ

Esercitazione 4 JDBC

Esercitazione su JDBC

Corso di Informatica Modulo T3 B2 - Database in rete

Programmazione Java Avanzata

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

Capitolo 13. Interrogare una base di dati

SQL prima parte D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2011/12

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

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

Il database management system Access

Informatica per le discipline umanistiche 2 lezione 10

UN PROGRAMMA APPLICATIVO: ACCESS Access è un programma del pacchetto Office che permette di realizzare database

Il linguaggio SQL: trigger. Versione elettronica: 04.7.SQL.trigger.pdf

Progetto di Applicazioni Software

Progettazione della componente applicativa

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

Database Manager Guida utente DMAN-IT-01/09/10

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R:

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

ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 2

L architettura di un DBMS

Organizzazione degli archivi

Manuale utente Volta Control

Object-Relational Mapping

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

Implementazione di MVC. Gabriele Pellegrinetti

Il linguaggio SQL: viste e tabelle derivate

Laboratorio di Basi di Dati

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

Il linguaggio SQL: viste e tabelle derivate. Versione elettronica: SQLd-viste.pdf

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE.

Analisi e sviluppo di un componente per un ESB open source

MDAC. Attualmente la versione disponibile di MDAC è la 2.8 ma faremo riferimento alla 2.6. ADO Active Data Objects ADO OLE DB ODBC

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

2104 volume III Programmazione

Prefazione Sistemi informativi e basi di dati Il modello relazionale Il modello ER

Progetto di Applicazioni Software

Protezione. Protezione. Protezione. Obiettivi della protezione

Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008)

L ARCHIVIAZIONE E LA GESTIONE DATI ATTRAVERSO L INTERAZIONE TRA MICROSOFT ACCESS ED EXCEL 1 INTRODUZIONE

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

ISTITUTO TECNICO ECONOMICO MOSSOTTI

DATABASE.

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database

Introduzione al data base

Laboratorio di Basi di Dati e Web

Introduzione ai Sistemi di Gestione di Basi di Dati XML

CONCETTO DI ANNIDAMENTO

Eclipse e Subversion

Corso sul linguaggio SQL

L ambizione dei design pattern (letteralmente schemi di programmazione) è quella di offrire soluzioni a problemi ricorrenti che facilitano lo

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 /

INTRODUZIONE. Data Base Management Systems evoluzione tecniche gestione dati

Data Warehousing (DW)

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

IBM Software Demos The Front-End to SOA

19. LA PROGRAMMAZIONE LATO SERVER

I MODULI Q.A.T. PANORAMICA. La soluzione modulare di gestione del Sistema Qualità Aziendale

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

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

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

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

Транскрипт:

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 (Capitoli 4 e 5).

Overview della Struttura

Overview della Struttura Core Container Inversion Of Control (IoC) e Dependency Injection; Bean - creazione, gestione e manipolazione di oggetti (beans). Context aggiunge le funzionalità JNDI, EJB, JMX, internazionalizzazione(i18n), ecc. Expression Language - linguaggio per interrogare e modificare oggetti a runtime. Data Access/Integration Livello di astrazione per l'accesso ai dati mediante tecnologie eterogenee tra loro (JDBC, Hibernate, ecc.) Spring AOP Aspect Oriented Programming. Supporto delle operazioni trasversali tra più oggetti (es. logging). Web Spring MVC Framework (moduli Web-Servlet e Web-Portlet). Testing Integrazione con JUnit, e presenza di Mock objects per il testing del codice in isolamento.

DAO Il pattern Data Access Object (DAO) ha lo scopo di disaccoppiare l'accesso ai dati rispetto alla loro effettiva memorizzazione, fornendo un astrazione per le operazioni da compiere sul database. Esso nasconde alle classi che si trovano nello strato di servizio dell applicazione, gli specifici meccanismi di accesso al database. Lo strato di Servizio è quello che offre ai componenti interni o esterni, una serie di servizi (fra i quali quelli di accesso ai dati).

DAO Gli oggetti DAO consentono la portabilità delle applicazioni da una sorgente di dati ad un'altra. Utilizzando gli oggetti DAO si disaccoppia l'implementazione della sorgente dati rispetto all'effettivo utilizzo. Questo consente di spostarsi da una sorgente dati ad un'altra senza dover cambiare la logica di business.

DAO - Riferimenti http://java.sun.com/blueprints/corej2eepatterns/ Patterns/DataAccessObject.html

JDBC JDBC (Java DataBase Connectivity) - connettore per database che permette ai programmi Java l accesso alle basi di dati, indipendentemente dal DBMS utilizzato. È una API, (package java.sql), che serve ai client per connettersi a un database. Fornisce metodi per interrogare e modificare i dati. È orientata ai database relazionali e supporta il modello Object Oriented.

JDBC L'architettura di JDBC prevede l utilizzo di un driver manager, che espone alle applicazioni un insieme di interfacce standard e si occupa di caricare a run-time i driver opportuni per pilotare gli specifici DBMS. Le applicazioni Java utilizzano le JDBC API per comunicare con il JDBC driver manager. Il driver manager usa le JDBC driver API per parlare con i singoli driver che pilotano gli specifici DBMS. Il JDBC-ODBC Bridge è un driver che consente di interfacciarsi con i driver ODBC in ambiente Windows.

JDBC Overview Il Driver manager è usato come factory per creare le connessioni al database. Le connessioni degli utenti al database sono tipicamente gestite mediante un pool di connessioni (es. Apache DBCP). Ciascuna connessione al database permette l esecuzione di comandi SQL del tipo: CREATE, INSERT, UPDATE, DELETE e SELECT.

JDBC Overview Vi sono tre tipi di istruzioni: Statement - l'istruzione viene inviata al database di volta in volta (nessun caching); Prepared Statement - l'istruzione è cached, viene compilata una sola volta, ciò rende più efficienti le chiamate successive; Callable Statement - usati per invocare stored procedure.

JDBC Overview L uso di istruzioni di aggiornamento (INSERT, UPDATE, DELETE) produce la restituzione di un valore numerico che indica quante tuple (righe) sono state interessate. L esecuzione di query (SELECT) produce la restituzione di un oggetto ResultSet, sul quale si può iterare per estrarre ciascuna tupla (e da ogni tupla, i singoli campi).

Spring JDBC Template Spring possiede alcune classi Template che facilitano la progettazione, occupandosi di tutto ciò che riguarda le connessioni al database e lasciando che l utente si occupi della logica di accesso ai dati. Questo assicura che le connessione sia sempre chiusa, sia in caso positivo che negativo (eccezioni).

Spring JDBC Template L interfaccia RowMapper permette di associare alle righe del ResultSet le istanze di oggetti del dominio dell applicazione. Si deve implementare il metodo maprow che mappa i valori della riga corrente del result set sui campi del bean.

Spring JDBC Template Spring JDBC si occupa della gestione delle eccezioni. Tutte le eccezioni lanciate da Spring JDBC sono sottoclassi di DataAccessException. DataAccessException è un tipo di RuntimeException (unchecked), per cui non siamo obbligati a gestirla. Al contrario, SQLException è una eccezione di tipo checked. Tuttavia, quando si lancia SQLException (cfr. codice) il framework JDBC di Spring, inserirà tale eccezione dentro una delle sottoclassi di DataAccessException e la rilancerà. Questo evita di doverla gestire esplicitamente.

SpringExample18 Confronto fra JDBC tradizionale e JDBC Template

SpringExample19 La classe NamedParameterJdbcTemplate permette di specificare i parametri delle query mediante dei nomi, invece di usare i segnaposto (? ). I parametri con nome migliorano la leggibilità e sono più semplici da gestire per la manutenzione. I parametri con nome possono essere specificati attraverso una Map, dove il nome del parametro è usato come chiave.

SpringExample20 La classe SimpleJdbcTemplate necessita di Java 1.5 e permette di semplificare la scrittura del codice utilizzando le classi Template (cioè la programmazione generica), autoboxing, metodi con numero di argomenti variabili, ecc.

SpringExample21 Gestione delle eccezioni. La gestione di eventuali eccezioni non va fatta nello strato DAO. Le eccezioni si devono lanciare e poi raccogliere nello strato di presentazione.