JDBC Java DataBase Connectivity SISTEMI ITIS B. CASTELLI Anno Scolastico 2007-2008.

Slides:



Advertisements
Presentazioni simili
Text Processing Google APi
Advertisements

1 Le s-espressioni. 2 Un nuovo esempio completo: le s-espressioni Sexpr 4 alberi binari (possibilmente vuoti) che hanno sulle foglie atomi (stringhe)
Accesso ai dati su Relational Database Management Systems LSA - Laboratorio di Sistemi Informativi Economico-Aziendali Salvatore Ruggieri Dipartimento.
JDBC: Concetti Fondamentali Lorenzo Blanco
Interfacce Java.
Database MySql.
Microsoft SQL Server 2008 Utilizzo. Creazione DataBase CREATE DATABASE CREATE DATABASE Cinema.
SQL (Standard query language) Istruzioni per la creazione di una tabella: Create table ( tipo, (, [vincoli]) Primary key ( ) CHIVE PRIMARIA Foreign key(
Capitolo 2 Nozioni fondamentali su Java Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill.
JPA Overview della tecnologia. Java Persistence Architecture Definita nella JSR-220 EJB 3.0 ( Tentativo di unificare EJB2.1 con.
Esercizio 2. Mostrare l'evoluzione dello stato (ambiente di classi, heap, pila, System.out) durante la valutazione delle seguenti dichiarazioni di classe.
Java DataBase Connectivity (JDBC)
Connessione con MySQL.
E.Mumolo, DEEI Player Stage E.Mumolo, DEEI
Sequential Statements. – Il VHDL simula lo svolgersi in parallelo di varie operazioni – Loggetto fondamentale e il PROCESS – Un PROCESS contiene una serie.
Database nel Web Modulo Didattico: Francesca Platania
Un DataBase Management System (DBMS) relazionale client/server.
EJB Enterprise Java Beans B. Pernici. Approccio Java.
Pierluigi Plebani - Politecnico di Milano MAIS Registry URBE (Uddi Registry By Example) WP2 Roma - 25 Novembre 2005.
Layouts and Graphics. component - container - layout Un Container contiene [0 o +] Components Il Layout specifica come i Components sono disposti nel.
Model – View - Controller
Esempio: Tombola! Parte seconda.
Unified Modeling Language class C {…} class B extends C {…} Esiste una notazione grafica per mostrare le relazioni di ereditarietà. Object StringC B Tutte.
J0 1 Marco Ronchetti Java Threads & Sincronizzazione.
J0 1 Marco Ronchetti - Basi di Dati Web e Distribuite – Laurea Specialitica in Informatica – Università di Trento.
OO.1 Marco Ronchetti - Java Sql package.
EJB Getting started Database: MySql Application Server: Pramati Server Ambiente di sviluppo: Pramati Studio 3 Applicazione esempio: Logon Trento, 30/10/2002.
Richiami di Java Multithreading. Threads (subclassing) public class A { public void a_method { C t = new C(); //C t = new C(String name); t.start(); …
Sezione: Costruttori Costruttori. Definizione dei costruttori Se per una classe A non scrivo nessun costruttore, il sistema automaticamente crea il costruttore.
prompt> java SumAverage
1 struct Pila { private: int size; int defaultGrowthSize; int marker; int * contenuto; void cresci(int increment); public: Pila(int initialSize) ; Pila();
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) JAVA: i commenti Anno Accademico 2009/2010.
JAVA C import java.util.*; #include <stdio.h>
Citrix Metaframe. Metaframe è la soluzione client-server prodotta dalla Citrix in grado di rendere disponibili applicazioni e desktop a qualsiasi dispositivo.
Java Database Connection (dal corso dei Servizi Web)
Programming with JXTA Hello World Peer discovery Peer Group discovery Creating Peer group Joining a Peer Group.
Selezione (=scelta) con “if-else”
Programmazione distribuita in Java
JDBC(TM) Database Access
Java base VI: Gestione I/O. Argomenti Introdurre le API per linput e output in Java.
Sequence. CREARE UNA SEQUENCE CREATE SEQUENCE nome [INCREMENT BY n] [START WITH n] [MAXVALUE n | NOMAXVALUE] [MINVALUE n | NOMINVALUE] [CYCLE | NOCYCLE]
Componenti dell’architettura Oracle
Elementi di programmazione ad oggetti a. a. 2009/2010 Corso di Laurea Magistrale in Ingegneria Elettronica Docente: Mauro Mazzieri, Dipartimento di Ingegneria.
Java e As400 Introduzione all’uso della IBM Toolbox for Java
Microsoft Access Maschere.
Fondamenti di Informatica Corsi di Laurea in Ingegneria Gestionale Canale AL ESERCITAZIONE 4 ARGOMENTI: STRINGHE DI CARATTERI.
Sviluppo di una Xlet per la TV digitale terrestre Vademecum della regione marche 2006 Ventura Luca.
Fondamenti di Informatica Corsi di Laurea in Ingegneria Gestionale Canale AL ESERCITAZIONE 6 ARGOMENTI: LAVORARE CON CLASSI METODI DELLISTANZA, COSTRUTTORI.
LE RETI E IL DDNS.
1 Lucidi delle esercitazioni di Sistemi di Elaborazione in Rete Università degli Studi della Calabria Corso di Laurea in Ingegneria Informatica A.A. 2003/2004.
Scoprirete che su Office non si può solo contare ma anche sviluppare.
Installazione di Drupal su Linux (sistemista) Installazione step-by-step e note.
Ese 2 (del 31 Marzo 2004). Mostrare l'evoluzione dello stato (ambiente di classi, heap, pila, System.out) durante la valutazione delle seguenti dichiarazioni.
Soluzioni 1.Struttura base soluzione 2.Lettura dei tasti 3.Identificazione dei tasti 4.Accensione dei LED 5.Rotazione dei LED 6.Rotazione dei tasti fino.
Basi di Dati e Sistemi Informativi SQL per Applicazioni Home page del corso:
Test con JUnit. zJUnit è un ambiente di test per programmi Java ySviluppato da Kent Beck É possibile usare JUnit allinterno di Eclipse per eseguire i.
SUBQUERY Chi ha un salario maggiore di quello di Abel? Occorre scomporre la query in due sotto problemi: MAIN : quali impiegati hanno un salario maggiore.
Corso di Programmazione in Java – Esercizio n° 001
1 Applet ed HTML Fondamenti di Informatica Corso D.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
Introduzione al linguaggio C. Cos’e’ il C? Il C e’ un linguaggio ad alto livello Un compilatore C prende in input un file contenente codice sorgente C.
Collection & Generics in Java
Basi di dati - Modelli e linguaggi di interrogazione- Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone Copyright © The McGraw-Hill.
CREAZIONE UTENTE SU DATATOP. CREAZIONE UTENTE Andate su //datatop.di.unipi.it/webdb Login come utente: webdb password: ****** Administer -> User Manager.
Dynamic SQL.
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;
MySQL Database Management System
Gaetano Anastasi Beatrice Miotti Lorenzo Guerriero Monica Pellegrinelli Massimiliano Sartor Giorgio Macauda SQLite Esempi di utilizzo della libreria in.
Dati in rete Appunti.
Transcript della presentazione:

JDBC Java DataBase Connectivity SISTEMI ITIS B. CASTELLI Anno Scolastico

Accesso remoto al DB Utente Host client Host server DataBase Istruzioni SQL Server di DataBase Rete

Accesso remoto al DB JDBC fornisce uno strato di accesso verso database completo e soprattutto ad oggetti Accesso generalizzato a livello applicazione Indipendenza dal tipo di DataBase Uso di driver forniti dal produttore di DataBase

Architettura software Java Application JDBC API JDBC Driver Manager JDBC-ODBC Bridge Pure Java JDBC Driver ODBC Database Server Host Client Host server

Accesso remoto al DB MySQL Utente Host client Host server Linux MySQL Istruzioni SQL Server di DataBase Rete Utilizza drivers JDBC scritti interamente in Java

Applicativo java come front-end al Database Connessione diretta tramite rete, con protocollo proprietario Server di Database relazionale ad oggetti MySQL fornisce le classi java jdbc per il client Accesso remoto al DB MySQL

MySQL Connector Pure Java JDBC Host Client MySQL JDBC Java Application MySQL DataBase Server Host server

Accesso remoto al DB Microsoft ODBC Utente Host client Host remoto Istruzioni SQL DataBase Rete ODBC Layer Utilizza drivers JDBC-ODBC bridge Archivi locali

ODBC Layer Interfaccia intermedia del Client per connettersi al database Rappresenta una serie di “C-Level API” Dipendente dalla piattaforma Microsoft Drivers non scritti in puro Java

General Application ODBC Layer Host remoto Host Client ODBC Layer Access ODBC Driver Manager ExcelParadoxOracledBaseJDBC Java Application JDBC-ODBC Bridge DataBase su host remoto

Occorre prima aggiungere la libreria dei driver JDBC mysql-connector-java bin.jar I numeri dipendono dalla versione della libreria. Essa contiene tutte le classi Java usate per accedere a MySQL mediante JDBC. Si scarica da Accesso per MySQL

Driver: org.gjt.mm.mysql.Driver E’ la classe Java principale (driver) per accedere a MySQL URL: jdbc:mysql://host-server:port/nome-DB Es: jdbc:mysql://localhost:3306/user_db?user=root&password=1234 Rappresentazione standard usata per referenziare una risorsa in rete. Specifica protocollo, host-server DataBase, con parametri, a cui connettersi Accesso per MySQL

Esempio: StatementODBC Semplice applicazione Java per eseguire comandi SQL su un DataBase ODBC. Sintassi: java StatementODBC nome-ODBC istruzione-sql Esempio: java StatementApp accessdb “select * from alunni” Le istruzioni necessarie per collegarsi ad un database sono: Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); carica il driver specificato. In questo caso usa JdbcOdbc bridge Connection conn = DriverManager.getConnection("jdbc:odbc:accessdb","",""); tenta la connessione al database accessdb. No user, no password

StatementODBC Se la connessione al DB va a buon fine, la chiamata del metodo torna un oggetto di tipo Connection col quale si crea un oggetto Statement tramite il quale è possibile effettuare la query sul database: Statement stm = conn.createStatement(); ResultSet rs = stm.executeQuery(“select * from alunni”); L’oggetto ResultSet rappresenta il risultato di una query come sequenza di record che si ottiene mediante un ciclo while sul metodo rs. next();

StatementODBC Un semplice esempio che stampa solo la prima colonna di un ResultSet ottenuto dall’esecuzione di una query: while (rs.next()) { System.out.print(rs.getString(1)); } Il metodo rs.getString(1); torna il valore della prima colonna del record corrente. Si cicla mentre ci sono ancora record da stampare, ovvero rs.next() torna il valore true. Nel programma si usa il metodo displayResult(rs), più completo e generalizzato, che stampa anche il nome di ogni colonna e il carattere | come separatore di campo di ogni record.

Codice di StatementODBC import java.sql.*; class StatementODBC { public static void main(String args[]) { if(args.length!=2){ System.out.println("Scrivere: java StatementODBC nome-ODBC sql"); System.out.println("Esempio: java StatementODBC accessdb \"select * from alunni\""); System.exit(0); } try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String url="jdbc:odbc:"+args[0]; Connection conn = DriverManager.getConnection(url,"",""); Statement stm = conn.createStatement(); ResultSet rs = stm.executeQuery(args[1]); if(rs!=null) displayResults(rs); conn.close(); }catch(Exception ex){ System.out.println(ex); System.exit(0); } } // metodo main

Codice di StatementODBC static void displayResults(ResultSet r) throws SQLException { ResultSetMetaData rmeta = r.getMetaData(); // stampa i nomi delle colonne int numColumns=rmeta.getColumnCount(); for(int i=1;i<=numColumns;++i) { if(i<numColumns) System.out.print(rmeta.getColumnName(i)+" | "); else System.out.println(rmeta.getColumnName(i)); } // stampa i dati di ogni riga while(r.next()){ for(int i=1;i<=numColumns;++i) { if(i<numColumns) System.out.print(r.getString(i)+" | "); else System.out.println(r.getString(i).trim()); } // for } // while } // metodo displayResults } // classe StatementApp