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



Похожие документы
JDBC versione base. Le classi/interfacce principali di JDBC

CORSO DI ALGORITMI E PROGRAMMAZIONE. JDBC Java DataBase Connectivity

Introduzione JDBC interfaccia java.sql driver caricare i driver

JDBC di base. Le classi/interfacce principali di JDBC

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

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

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

Lezione 9. Applicazioni tradizionali

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

Esercitazione su JDBC

Programmazione Java Avanzata Spring - JDBC

PROVA FINALE Ingegneria del software

Laboratorio di reti II: Gestione di database lato server

Scheda 15 Accedere ai DataBase con JDBC

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

Java: la libreria delle classi

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

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

Accesso a Database con JDBC

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

Architettura MVC-2: i JavaBeans

Corso di Informatica Modulo T3 B2 - Database in rete

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

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

Accesso Web a Data Base

Programmazione Java Avanzata

JAVA JDBC. Andrea BEI

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

DBMS. Esempi di database. DataBase. Alcuni esempi di DBMS DBMS. (DataBase Management System)

Esercitazione 4 JDBC

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

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

JDBC: Java e database.

Database e reti. Piero Gallo Pasquale Sirsi

JDBC. Dispense per il corso di Ingegneria del Web

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

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

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

DBMS (Data Base Management System)

SOSEBI PAPERMAP2 MODULO WEB MANUALE DELL UTENTE

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

DATABASE.

Basi di Dati: Corso di laboratorio

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

Tecnologie di Sviluppo per il Web

Dispensa di database Access

Esercizio data base "Biblioteca"

Esercitazione sulle libpq - libreria C per PostgreSQL

Medici Convenzionati

Istruzioni SQL 1. Query di selezione 2 Istruzione SELECT 2 Istruzione SELECT DISTINCT 2 ORDER BY 3 WHERE 3 La condizione LIKE 4 BETWEEN AND 5

User Tools: DataBase Manager

Concetti fondamentali dei database database Cos'è un database Principali database

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

Le Basi di Dati. Le Basi di Dati

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

Le query. Lezione 6 a cura di Maria Novella Mosciatti

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

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro,

SITI-Reports. Progetto SITI. Manuale Utente. SITI-Reports. ABACO S.r.l.

Sistemi di Elaborazione delle Informazioni (C.I. 15) Access

Fast Query Manuale Utente. Fast Query Manuale Utente

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

SQL Server Integration Services. SQL Server 2005: ETL - 1. Integration Services Project

Per chi ha la Virtual Machine: avviare Grass da terminale, andando su Applicazioni Accessori Terminale e scrivere grass

Esercitazione 8. Basi di dati e web

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

OSSIF WEB. Manuale query builder

Scheda operativa Versione rif c00. Libro Inventari

15J0460A300 SUNWAY CONNECT MANUALE UTENTE

Programmazione Java: JDBC

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

Uso dei data bases con PHP. Prof. Francesco Accaino Iis Altiero Spinelli Sesto Sa Giovanni

Capitolo 13. Interrogare una base di dati

Introduzione ai database relazionali

JDBC. Di Michele de Nittis Versione 06/08/2008

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

Lavorare con JDBC L'impiego di JDBC è semplice, e solitamente si articola attraverso quattro passi:

PSG Table Builder Manuale Utente. PSG TABLE BUILDER Manuale Utente

Z3 B1 Message Addon Invio Massivo Documenti via e Fax per SAP Business One

19. LA PROGRAMMAZIONE LATO SERVER

Installazione e caratteristiche generali 1

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

Dati relazionali e XML

Ingegneria del Software: JDBC.

La VPN con il FRITZ!Box Parte II. La VPN con il FRITZ!Box Parte II

Sistemi per la gestione di database: MySQL ( )

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

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

Introduzione ai Sistemi di Gestione di Basi di Dati XML

Lezioni di Laboratorio sui Data Base

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

Транскрипт:

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 connettersi e comunicare con un DB? Una tecnologia Java per questo scopo: JDBC Connessione a DB con JDBC Interrogazione e manipolazione di DB con JDBC 2

JDBC: generalità JDBC: Java DataBase Connectivity kit Le sue funzionalità sono contenute nelle core API, nel package java.sql Due principali classi/interfacce: DriverManager: classe usata per ottenere una connessione a DB Connection: interfaccia per comunicare con un DB quando è stata stabilita una connessione Altre classi/interfacce: Statement, ResultSet, DatabaseMetaData, ResultSetMetaData, SQLException,. 3

Connessione a DB (I) Un DBMS tipicamente supporta le connessioni attraverso un modulo software detto driver Il driver accetta richieste da applicazioni esterne (formulate con una specifica sintassi), traducendole in comandi per il DBMS usato La standardizzazione della sintassi per le richieste permette alle applicazioni di ignorare dettagli implementativi del DB utilizzato 4

Connessione a DB (II) Un applicazione che vuole usare un DB, deve: Avere a disposizione un apposito driver con cui è il grado di comunicare (fornito dal venditore del DB) Sapere come localizzare il DB, tramite un suo punto di accesso (stabilito da chi amministra lo specifico DB) Applicazione Software Driver DB Interfaccia di comunicazione standardizzata Punto di accesso al DB 5

Interfacce di comunicazione L interfaccia di comunicazione più diffusa è ODBC (Open DataBase Connectivity, di Microsoft) In Java, si usa JDBC (analogo a ODBC, più semplice) Applicazione Software Driver JDBC DB I venditori di DB forniscono sempre driver ODBC (spesso anche JDBC) per accedere ai loro sistemi Si può eventualmente usare anche un driver bridge JCBC/ODBC Applicazione Software Bridge JDBC/ODBC Driver ODBC DB 6

Connessione: Passi fondamentali Due azioni preliminari: Rendere accessibile il DB dall esterno (tramite indentificatore unico) Registrazione del driver JDBC da utilizzare (su DriverManager) Instaurare la connessione 7

Connessione: Azioni preliminari (I) Rendere accedibile il DB dall esterno, p.es. sotto Windows registrando il file relativo con lo strumento ODBC Data Source Administrator 8

Connessione: Azioni preliminari (II) Con ODBC Data Source Administrator, selezionare il tipo di driver desiderato (premendo il pulsante Add ). Selezionare p.es. Microsoft Access Driver (+ Finish ) Fornire un identificatore per la sorgente dati ODBC, e specificare il file del database (p. es. un.mdb) 9

Connessione: Azioni preliminari (III) In conseguenza delle azioni descritte, il file.mdb selezionato sarà individuato dall ODBC Data Source Administrator tramite l identificatore specificato (p.es. MY_TEST ). Ai fini JDBC, l identificatore unico del DB sarà jdbc:odbc:my_test 10

Connessione: Azioni preliminari (IV) Registrazione del driver JDBC: 2 metodi alternativi 1. DriverManager, in fase di inzializzazione, carica tutte le classi specificate nella proprietà di sistema jdbc.drivers : dunque, basterà fare: System.setProperty("jdbc.drivers", "sun.jdbc.odbc.jdbcodbcdriver"); 2. Caricare esplicitamente il driver: Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Questa invocazione determina l inizializzazione della classe in argomento (nell es.: bridge jdbc/odbc) 11

Ottenere una connessione Si invoca un apposito metodo di DriverManager : Connection con= DriverManager.getConnection( "jdbc:odbc:my_test", "pippo", "x"); Localizzazione punto di accesso al DB ( URL ) Username del DB Oggetto per gestire la connessione Password del DB 12

URL JDBC: struttura DriverManager può gestire più di un driver. Il particolare driver da usare viene specificato attraverso l URL del DB Un URL JDBC: jdbc:<subprotocol>:<subname> <subprotocol> si riferisce al driver <subname>si riferisce alla sorgente dati (varie modalità di specifica, in dipendenza dal DBMS) Esempi: jdbc:odbc:db_1 jdbc:oracle:thin:@host1:1532:mydb jdbc:mysql://a_firm.com/a_db 13

Eseguire query: lo statement Una volta ottenuta una connessione, si può operare sul DB con query di selezione e query di comando (UPDATE, DELETE, INSERT ) Per far questo si ricorre all interfaccia java.sql.statement Uno statement viene ottenuto dall oggetto connessione: Statement st = con.createstatement(); Connessione ottenuta precedentemente 14

Es: una query SQL statica Si prepara una stringa che contiene la query: String q = "SELECT Cognome FROM Tabella1"; Si invoca il metodo executequery() sullo statement passando la stringa query come argomento: ResultSet rs = st.executequery(q); Si ottiene il risultato sotto forma di un oggetto di tipo (interfaccia) ResultSet 15

L oggetto ResultSet L oggetto restituito da java.sql.statement.executequery() implementa l interfaccia java.sql.resultset Esso rappresenta la tabella generata come risultato dell esecuzione di una query Ci si può muovere tra le righe del ResultSet con un cursore manipolato p. es. dai metodi boolean next() si passa alla successiva boolean previous() alla precedente boolean absolute(int n) alla riga n boolean relative(int n) n righe più avanti 16

ResultSet: metodi getxxx() Per ottenere i dati dei campi di ciascuna riga, si usano i metodi getxxx(string attr) getxxx(int index) in cui XXX corrisponde al tipo di dato restituito L argomento corrisponde, nelle due versioni: al nome dell attributo desiderato alla posizione del campo (1=prima colonna) Es: String nome1 = rs.getstring( nome ); int e = rs.getint( eta ); String nome2 = rs.getstring(2); 17

Tipico uso di ResultSet Si può sfruttare il valore di ritorno dei metodi che modificano il cursore: while (rs.next()) { for (int i = 1; i <= 2; i++) System.out.println(rs.getString(i)); System.out.println(""); } Es: Mario Rossi Carlo Verdi 18

Query di comando Si opera in modo analogo alle query di selezione: Si prepara una stringa che contiene la query: String comando = "UPDATE MiaTabella "; Si invoca il metodo executeupdate() sullo statement passando la stringa query come argomento; restituisce il numero di righe coinvolte dall esecuzione del comando: int r = st.executeupdate(comando); 19

Query parametriche (I) JDBC fornisce un meccanismo per formulare query di selezione/comando parametriche Si utilizza java.sql.preparedstatement, una versione specializzata di java.sql.statement Si formula la query SQL sostituendo il carattere? al valore dei parametri: String pq = SELECT x FROM Tab WHERE y >? Un PreparedStatement viene ottenuto dall oggetto connessione: PreparedStatement ps = con.preparestatement(pq); 20

Query parametriche (II) Prima di poter eseguire la query, occorre specificare il valore dei parametri Questa operazione viene svolta dai metodi setxxx(int index, XXX val) index è il numero dell occorrenza del? a cui ci si riferisce XXX corrisponde al tipo di dato trattato Es: int a=5; ps.setint(1,a); ResultSet rs = ps.executequery(); Adesso: SELECT x FROM Tab WHERE y > 5 Nessun argomento 21

Eccezioni in JDBC Le varie attività JDBC possono sollevare eccezioni che devono essere gestite. L eccezione più generale lanciata in questo ambito è java.sql.sqlexception (p.es. da DriverManager.getConnection(), Statement.executeQuery(), etc.) Altre sotto-eccezioni: Exception SQLException SQLWarning BatchUpdate Exception 22