JDBC(TM) Database Access

Slides:



Advertisements
Presentazioni simili
Accesso ai dati su Relational Database Management Systems LSA - Laboratorio di Sistemi Informativi Economico-Aziendali Salvatore Ruggieri Dipartimento.
Advertisements

CREAZIONE UTENTE SU ORACLE1 Pagina delle risorse: crea utente oracle ( Password:… Dora in poi, in questi lucidi,
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità A1 Introduzione a Java.
Database MySql.
Stored Procedure Function Trigger
Structured Query Language (SQL) Presentazione 13.1 Informatica Generale (Prof. Luca A. Ludovico)
PHP.
Utilizzare PHP 5 Corso Interazione Uomo – Macchina AA 2005/2006.
SQL da programma.
Java Enterprise Edition (JEE)
Java DataBase Connectivity (JDBC)
Connessione con MySQL.
IN QUESTA PRESENTAZIONE…
OUTLINE Riprogettazione del database del portale Web della Facoltà di Ingegneria Sviluppo di una applicazione WEB DB : HOMEPAGE DOCENTI Architettura multilivello.
Usare Apache Axis.
Java2 Esercitazioni del corso di Sistemi Informativi Marina Mongiello
Database nel Web Modulo Didattico: Francesca Platania
APPLICAZIONI E BASI DATI DISTRIBUITE
OO.1 Marco Ronchetti - Java Sql package.
Architettura Three Tier
SQL per la modifica di basi di dati. 29/01/2014SQL per la modifica di basi di dati2 Data Manipulation Language Introduciamo ora il Data Manipulation Language.
Un prototipo di strumento per la manipolazione di versioni di schema in ambito eterogeneo Fabio Grandi DEIS - Università di Bologna SVMgr Schema Versioning.
Maurizio Lenzerini Domenico Lembo Laurea in Ingegneria Informatica - Università di Roma "La Sapienza" Corso di Basi di Dati - A.A. 2003/2004 Prima Esercitazione.
Gestione di Progetti Software 2 (A.A. 2004/2005) - Lezione 2 1 JAVA: obiettivi di progetto del linguaggio Nota storica: Il linguaggio JAVA (inizialmente.
Interoperabilità nei sistemi di gestione dei dati
CAPITOLO 2 INTRODUZIONE AL LINGUAGGIO JAVA E ALL'AMBIENTE HOTJAVA.
Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.
1 Linux day /11/2003 ADA. Dai requisiti al progetto Come nasce il progetto di una piattaforma e-learning Open Source.
Architettura Java/J2EE
Viste. Cosè una vista? è possibile creare un subset logico di dati o una combinazione di dati una vista è una tabella logica basata su una tabella o su.
Inutile provare dunque a inserire un file ".psd" (formato nativo di Photoshop) all'interno della vostra pagina HTML: con grande probabilità il browser.
UNIVERSITÀ POLITECNICA DELLE MARCHE
Basi di Dati e Sistemi Informativi
Sistemi Informativi sul Web
Basi di Dati e Sistemi Informativi SQL per Applicazioni Home page del corso:
Presentazione Data Base Ovvero: il paradigma LAPM (Linux - Apache - PHP - mySQL) come supporto Open Source ad un piccolo progetto di Data Base relazionale,
BIOINFO3 - Lezione 341 INTERAZIONE CON UN SERVER MYSQL Quando abbiamo parlato dei database relazionali SQL vi avevo già accennato che linterazione (invio.
BIOINFO3 - Lezione 41 ALTRO ESEMPIO ANCORA Progettare il comando di creazione di una tabella di pubblicazioni scientifiche. Come chiave usare un numero.
OBIETTIVI: Introduzione ai driver ODBC Creazione di alcune tabelle del database Creazione query Creazione report Lezione del 13/11/2009 Bray Francesco.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
CORSI DI FORMAZIONE - Basi di Dati: MySql - Parte 4 - Dicembre Utenti e privilegi del database - 1 Root è lutente amministratore predefinito, ma.
Dati e DBMS DBMS relazionali SQL Progettazione di una base di dati Programma del Corso.
ASP – Active Server Pages Introduzione Pagine Web Statiche & Dinamiche(ASP)
Basi di dati - Modelli e linguaggi di interrogazione- Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone Copyright © The McGraw-Hill.
CREAZIONE UTENTE SU ORACLE1 Pagina delle risorse: crea utente oracle ( D’ora in poi, in questi lucidi, il vostro utente oracle.
JDBC Java DataBase Connectivity SISTEMI ITIS B. CASTELLI Anno Scolastico
Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.
1 Università della Tuscia - Facoltà di Scienze Politiche.Informatica 2 - a.a Prof. Francesco Donini Accesso a basi di dati con ASP.
1 Sistemi Informativi e Servizi in Rete Università degli Studi di Brescia Facoltà di Ingegneria Parsing di documenti XML Esercizi.
Pagine ASP parte 3 I data base Stefano Schacherl.
Fabrizio Felici LAMP workshop GROsseto Linux Users Group.
Programmazione Web PHP e MySQL 1. 2Programmazione Web - PHP e MySQL Esempio: un blog.
Da Oracle a MySQL Migrazione di database SQLWays – Software per migrazione Presentazione Copyright (c) Ispirer Systems Ltd. Tutti.
Interazione col DB Per interagire con una base dati da una pagina PHP occorre procedere come segue: Eseguire la connessione al DBMS MySQL in ascolto;
Esercizio ODBC. Configurare il driver ODBC Start  Control Panel  Administrative Tools Aprire: Data Source(ODBC) User DSN  Add…. Selezionare il driver.
MySQL Database Management System
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
Database Elaborato da: Claudio Ciavarella & Marco Salvati.
Esercizio ODBC Roberto Pecchioli, Nicola Salotti, Massimiliano Sergenti - Gruppo Admin.
DIGITAL FOLDER Pesatori Carlo
Introduzione a SQL Server 2000 LSA - Laboratorio di Sistemi Informativi Economico-Aziendali Salvatore Ruggieri Dipartimento di Informatica, Università.
Eprogram informatica V anno. Introduzione a PHP Introduzione La diffusione di PHP ha avuto un notevole incremento dalla fine degli anni Novanta a oggi,
Sistemi Informativi A. A. 2010/11 Installazione Oracle DB 11gR2.
Corso Java : Lezione 5 JDBC API : panoramica JDBC API : uso nel codice.
Gaetano Anastasi Beatrice Miotti Lorenzo Guerriero Monica Pellegrinelli Massimiliano Sartor Giorgio Macauda SQLite Esempi di utilizzo della libreria in.
Linguaggio SQL prima parte Linguaggio SQL prima parte A. Lorenzi, E. Cavalli INFORMATICA PER SISTEMI INFORMATIVI AZIENDALI Copyright © Istituto Italiano.
Elementi di statistica con R e i database LEZIONE 2 Rocco De Marco rocco.demarco(a)an.ismar.cnr.it Ancona, 12 Aprile 2012.
SQLite. Introduzione a SQLite Oltre alla possibilità di memorizzare informazioni persistenti attraverso Preferences e files, Android mette a disposizione.
* R AMAN K AZHAMIAKIN O SCAR Z G IOVANNI D E ITT M. B UONARROTI, T RENTO A NDROID D EVELOPMENT P ERSISTENZA.
ASP – Active Server Pages - 1 -Giuseppe Tandoi ASP – Active Server Pages Tecnologia per lo sviluppo di pagine dinamiche.
Transcript della presentazione:

JDBC(TM) Database Access

Introduzione Nato nel 1996 1998 JDBC2 (cursori scorrevoli, supporto tipi SQL avanzati) JDBC3 in fase di rilascio JDBC e ODBC si basano sulla stessa idea: comunicare con il gestore dei driver che usa i driver registrati per comunicare con il DB Elenco driver: http://industry.java.sun.com/products/jdbc/drivers

Schema JDBC Applicazione java API JDBC Gestore driver JDBC API driver JDBC Bridge JDBC/ODBC Driver JDBC Se non ho il driver JDBC per quel db uso la seconda strada ma non è performante e non è supportato driver ODBC DB DB

Tipi di driver JDBC/ODBC bridge , lento Scritti parte in Java e parte in codice nativo comunicano con API client DB. Occorre installare libreria Java e codice specifico per la piattaforma Librerie Java pure che usano un protocollo indipendente dal db che inviano richieste a componente server che traduce nel protocollo specifico del DB Librerie JAVA pure che traducono direttamente nel protocollo specifico del DB 1 e 2 non si usano mai. 3 e 4 sì. Dettagli irrilevanti per noi.

Uso tipico di JDBC Two tier (due livelli) funziona ma è critica busisness e viste collegate Tree tier (tre livelli) logica di business e viste scollegati (è meglio) Client (presentazione visiva) JDBC Protocollo db DB Client (presentazione visiva) HTTP,RMI,ecc.. DB Logica di business JDBC Protocollo db

Installazione di JDBC JDBC è stato progettato per rendere le cose semplici. Questo significa che l'API JDBC rende facile la gestione dei compiti del db, come semplice SELECT. La prima cosa che dovete fare è verificare che ci sono le seguenti impostazioni. Per fare questo dovete sequire le seguenti fasi: Installare Java e JDBC sulla vostra macchina. Installare un driver sulla vostra macchina Installare un DBMS se necessario

Url di database Sintassi (per collegarsi al db) simile a URL internet Sintassi generica jdbc:nom sottoprotocollo: altro Es. jdbc:db2:MIODATABASE jdbc:pointbase:MIODATABASE jdbc:odbc:rubrica Per MySQL si usa: jdbc:mysql://localhost:3306/nomeDB Per Oracle si usa: jdbc:oracle:thin:@localhost:1521:xe

Creare la connessione Nomi delle classi driver JDBC com.ibm.db2.jdbc.app.DB2Driver (file tipo classs) com.mysql.jdbc.Driver (MySQL) oracle.jdbc.driver.OracleDriver (Oracle) Referenziare la libreria contenente il driver (.zip o .jar) classpath o IDE Registrare il driver caricandone la classe Class.forName (“oracle.jdbc.driver.OracleDriver“); Registrare il driver nel driver manager Impostare le proprietà di sistema via codice ad esempio leggendole da un file di proprietà

Aprire la connessione Si apre la connessione con la classe Connection Connection conn= DriverManager.getConnection(url,username,password); (restituisce un oggetto connection) Es. Connection conn = DriverManager.getConnection(“jdbc:oracle:thin:@localh ost:1521:xe”,“ ad”,“pass”);

Esempi Esempio di JDBC-ODBC bridge (compilato) Esempio di driver JDBC per PointBase (compilato)

Eseguire comandi SQL Creare un oggetto Statement Statement stat= conn.createStatement(); Creare la stringa SQL String command= “UPDATE libri SET prezzo=prezzo-5.00 WHERE titolo NOT LIKE ‘%HTML%’” Chiamare il metodo executeUpdate restituisce un intero, le righe influenzate dal comando) stat.executeUpdate(command); Per estrarre dati si esegue ExecuteQuery che restituisce un oggetto di tipo ResultSet ResultSet rs = stat.executeQuery(“SELECT * FROM libri”); Il metodo generico execute restituisce un valore boolean che si può testare per sapere se l’SQL restituisce un ResultSet

Eseguire comandi SQL (cont.) Occorre poi ciclare sul result set while(rs.next()) { rs.getString(1); //accesso tramite indice colonna, inizia //da 1 non da zero rs.getDouble(“prezzo”); } Nota: tipi di dati Java non proprio uguali a quelli SQL (pag298 man Java2)

METADATI Servono pe ottenere informazioni sul databse o sulla tabella Info sul database DatabaseMetaData meta= conn.getMetaData(); ResultSet rs = meta.getTables(null, null, null,new String[] {“TABLE”}); Restituisce un set di risultati con info su tutte le tabelle Info su una tabella ResultSetMetaData metatab= rs.getMetaData(); for(int i=0;i<metatab.getColumnCount();i++) {String nomeCol = metatab.getColumnLabel(i); ..}

JDBC2 Result set scorrevoli In JDBC1 esisteva solo il metodo next(), JDBC2 prevede anche il metodo previous() e la possibilità di avere un resultset modificabile(JDBC1 no) Statement stat = conn.createStatement(type, concurrency); Es. Statement stat = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSI TIVE,ResultSet.CONCUR_READ_ONLY); permette di avere rs scorrevole e non sensibile a modifiche apportate al db e in sola lettura Altri metodi sono: absolute(n), relative(n),first(),last(),beforeFirst(), afterLast(),isFirst,etc.

JDBC2(cont) Result set aggiornabile Statement stat= conn.createStatement(ResultSet.TYPE_SCROLL_INSENSI TIVE,ResultSet.CONCUR_UPDATABLE); Per aggiornare ResultSet rs= stat.executeQuery(“select * from libri”); while(rs.next()) { double prezzo=rs.getDouble(“prezzo”); rs.updateDouble(“prezzo”,prezzo*1.2); rs.updateRow(); } updateRow rende le modifiche permanenti sul db anche deleteRow() e insertRow()

Transazioni Le transazioni servono per garantire integrità del DB(tutte op a buon fine o annullate) Per default connessione in modo autocommit (inviati subito) Per transazione conn.setAutoCommit(false); Statement stat= conn.createStatement(); stat.executeUpdate(cmd1); stat.executeUpdate(cmd2); conn.commit() o se errore conn.rollback()