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



Documenti analoghi
CORSO DI ALGORITMI E PROGRAMMAZIONE. JDBC Java DataBase Connectivity

Introduzione JDBC interfaccia java.sql driver caricare i driver

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

JDBC. A. Bechini Accesso a DataD con Java

Basi di Dati Esercitazione JDBC. Giugno 2007

Esercitazione su JDBC

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

JDBC versione base. Le classi/interfacce principali di JDBC

Corso di Informatica Modulo T3 B2 - Database in rete

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

Accesso Web a Data Base

Java: la libreria delle classi

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

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

Tomcat & Servlet. Contenuti. Programmazione in Ambienti Distribuiti. Tomcat Applicazioni Web. Servlet JSP Uso delle sessioni

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

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

Laboratorio di reti II: Gestione di database lato server

Tecnologie di Sviluppo per il Web

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

1 Gestione dell utente connesso in sessione con Java Server Pages, Java Beans, Servlet

JDBC. Dispense per il corso di Ingegneria del Web

Gestione di database lato server, appunti di configurazione

DBMS ed Applicazioni Motivazioni

PROVA FINALE Ingegneria del software

Basi di Dati. Esercitazione JDBC 28/05/2007

Scheda 15 Accedere ai DataBase con JDBC

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

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

Introduzione a JDBC. si inviano comandi SQL; si recuperano i risultati dei comandi.

Setup Tomcat. Installare Java SDK * ( ad es. in c:\programmi\j2sdk1.4.2_08

Accesso a Database con JDBC

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

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

Dominio applicativo. Progettazione. v SQL incluso in codice applicativo v Embedded SQL v Cursori v Dynamic SQL v JDBC v Stored procedures

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

Basi di Dati Esercitazione JDBC

Architettura MVC-2: i JavaBeans

DBMS ED APPLICAZIONI (CAPITOLO 6) SQL incluso in codice applicativo Embedded SQL Cursori Dynamic SQL JDBC Stored procedures

JAVA JDBC. Andrea BEI

JDBC. Marco Tessarotto Programmazione dei Web Server Anno Accademico

Utilizzando per la connessione al database un driver di Tipo 1:

Lezione 9. Applicazioni tradizionali

Basi di Dati. Esercitazione JDBC. Ing. Paolo Cappellari

Tecnologie di Sviluppo per il Web

Tecnologia e Applicazioni Internet 2011/12

Introduzione a JDBC. si inviano comandi SQL; si recuperano i risultati dei comandi.

Programmazione Java: JDBC

Anno Accademico Corso di Tecnologie Web Web Application: Servlet. Universita degli Studi di Bologna - Facolta di Ingegneria

Prova scritta del 13 luglio 2010

Programmazione Java Avanzata Spring - JDBC

1 Applicazione J2EE sul SAP WAS con SAP NWDS

Database e reti. Piero Gallo Pasquale Sirsi

Basi di Dati: Corso di laboratorio

TUTORIAL. CREAZIONE DI TRIGGER IN ORACLE LITE 8i MEDIANTE CLASSI JAVA

JDBC: SQL NEI LINGUAGGI DI PROGRAMMAZIONE

Capitolo 5. Soluzione: Soluzione in C:

Laboratorio di Sistemi Accesso a un database Jsp [NetBeans]

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

Introduzione a JDBC. si inviano comandi SQL; si recuperano i risultati dei comandi.

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

ESERCITAZIONE: AZIENDA

SQL e linguaggi di programmazione Applicazioni ed SQL: architettura

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

SQL nei linguaggi di programmazione

Laboratorio di Basi di Dati e Multimedia

Soluzione 1a: definizione schema (semplificato) del database

Funzioni scalari in SQL. Capitolo 5. coalesce. nullif. Altre funzioni scalari. case

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

Trasformazione DB Access In SQL Server. Michele De Nittis

Programmazione delle basi di dati attraverso JDBC

Laboratorio di Basi di Dati. Docenti: Alberto Belussi Lezione 7

Interfaccia JDBC. Sistemi Informativi L-A. Home Page del corso: Versione elettronica: JDBC.

JDBC: Java e database.

Laboratorio di sistemi SELECT e checkbox Jsp [Java]

Servlet e JDBC. Servlet e Web Server. Servlet e Web Server. Servlet e Web Server. Richieste. Servlet. Servlet:

Tutorial MYSQL. Creazione linked server con Microsoft SQL Server per lettura dati da MYSQL. Validità: Febbraio 2013

Tecnologie di Sviluppo per il Web

Impostazione ambiente di lavoro. Stefano Marchetti

Java e i database. Che cosa sono i database?

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

Programmazione Java. Davide Di Ruscio Dipartimento di Informatica Università degli Studi dell Aquila.

Applicazioni tradizionali

ESERCITAZIONE TIGA : Architettura Applet RMI Database SOLUZIONE PROPOSTA

Ingegneria del Software: JDBC.

Esempio di architettura software

Programmazione server-side: Java Servlet

Reflection in Java. Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A

Tecnologie di Sviluppo per il Web

JDBC JDBC. Driver di accesso. Autore: Roberto Fabbrica Diapo 1. Diapo 2. Diapo 3

JDBC: SQL nei linguaggi di programmazione

Laboratorio di Basi di Dati e Web. Docente: Alberto Belussi

Connessione ad una fonte di dati ODBC

JDBC: breve riepilogo (1)

Gestione delle eccezioni in Java

Sviluppo di applicazioni per basi di dati

Main System Monitor Keyboard

Java Enterprise Edition - JEE. Autore: Agostino Sorbara ITIS M. M. Milano

Transcript:

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 uno statement createstatement() Esecuzione della query / istruzione SQL executequery() / executeupdate() Scansione del ResultSet 1

JDBC-ODBC Per usare un database che fornisce un intefaccia ODBC, tramite JDBC occorre: Dichiarare il DB come data source ODBC Pannello di controllo; Amminstrazione; Data Sources (ODBC) /system32/odbcad32.exe System DSN; Add... Scegliere il driver (es. MS Access Driver) Selezionare il DB Fare riferemento a quel nome da Java ODBC MS Access Nome DSN Path del DB 2

ODBC Driver class: sun.jdbc.odbc.jdbcodbcdriver Connection string: jdbc:odbc:nome_odbc Derby Derby DB è un database scritto in Java ed Open-Source http://incubator.apache.org/derby/ Può funzionare come DB embedded nell applicazione Driver class: org.apache.derby.jdbc.embeddeddriver Stringa di connessione: jdbc:derby:provadb;create=true 3

JDBC import java.sql.*; class ProJdbc { public static void main(string[] pars) throws Exception{ // Carica il driver: bridge Jdbc-Odbc Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // Ottiene una connessione con il DB Connection conn =DriverManager. getconnection("jdbc:odbc:nome_odbc"); // dove "NOME_DNS" è il nome con cui // il DB è stato dichiarato in ODBC Diverso per per servlet // JSP JSP JDBC // Crea uno statement Statement stmt = conn.createstatement(); // Esegue una query ResultSet rs = stmt. executequery("select * FROM Tab1"); // Raccoglie le meta-informazioni sulla query // (nomi e tipi dei campi) ResultSetMetaData fields = rs.getmetadata(); int n_col = fields.getcolumncount(); for(int i=0; i<n_col; ++i){ System.out.println(fields.getColumnName(i+1) + ":" + fields.getcolumntypename(i+1)); } 4

JDBC // Scandisce le righe del result set while(rs.next()){ for(int i=0; i<n_col; ++i){ String col_name= fields.getcolumnname(i+1); // getstring() converte a String qualsiasi // valore; getint(), getdouble(), etc. // richiedono il tipo corretto String col_value = rs.getstring(col_name); System.out.print(col_value+"\t"); } System.out.print("\n"); } }} Jdbc in Servlet e JSP Per utilizzare sorgenti dati Jdbc in applicazioni web occorre Definire il contesto e dichiarare una risorsa di tipo data source META-INF/context.xml N.B. specifico per Tomcat Definire un riferimento a tale risorsa WEB-INF/web.xml Accedere al nome dal servlet 5

Jdbc in servlet e JSP context.xml <Resource name= jdbc/db url= jdbc:odbc:provadb jdbc.jsp lookup( "java:comp/env/jdbc/db") web.xml DB <resource-ref name= jdbc/db Data Source del Contesto All interno del Context creare una nuova Data Source Nome: jdbc/db URL: jdbc:odbc:provabc Driver: sun.jdbc.odbc.jdbcodbcdriver 6

context.xml <Context path="/jdbc" doccbase="jdbc" debug="0"> <Resource name="jdbc/db auth="container" type="javax.sql.datasource"/> <ResourceParams name="jdbc/db"> <parameter> <name>driverclassname</name> <value>sun.jdbc.odbc.jdbcodbcdriver</value> </parameter> <parameter> <name>url</name> <value>jdbc:odbc:provadb</value> </parameter> </ResourceParams> </Context> In web.xml Dichiarare l uso della data source. Dopo le direttive servlet-mapping: <resource-ref> <description>db Connection</description> <res-ref-name>jdbc/db</res-ref-name> <res-type>javax.sql.datasource</res-type> <res-auth>container</res-auth> </resource-ref> 7

Deployment file://d: \web\meta-inf\context.xml file://d:\workspace\progetto\web JSP (1) <%@ page contenttype="text/html" language="java" %> <%@ page import="javax.naming.*,javax.sql.*,java.sql.*"%> <html><head><title>db Test</title></head><body> <% try{ Context ctx = new InitialContext(); if(ctx == null ) throw new Exception("No Context"); DataSource ds =(DataSource) ctx.lookup("java:comp/env/jdbc/db"); if (ds!= null) { Connection conn = ds.getconnection(); if(conn!= null) { //.. Codice effettivo }else throw new Exception( No connection!"); }else throw new Exception( No data source!"); }catch(exception e) { e.printstacktrace(); } %> </body></html> Diverso per per applicazioni 8

JSP (2) Statement stmt = conn.createstatement(); ResultSet rs = stmt.executequery("select * from tab"); %> <table border=1> <tr> <% ResultSetMetaData fields = rs.getmetadata(); int n_col = fields.getcolumncount(); for(int i=0; i<n_col; ++i){ %> <th><%=fields.getcolumnname(i+1)%> <% } while(rs.next()){ %><tr><% for(int i=0; i<n_col; ++i){ String col_name = fields.getcolumnname(i+1); %> <td><%= rs.getstring(col_name) %> <% } } %></table> <% conn.close(); Chiamata del JSP da browser 9