Java DataBase Connectivity e Ekkehart Krippendorff: differenze tra le pagine

(Differenze fra le pagine)
Contenuto cancellato Contenuto aggiunto
FrescoBot (discussione | contributi)
 
Recupero di 5 fonte/i e segnalazione di 0 link interrotto/i. #IABot (v2.0beta15)
 
Riga 1:
{{Bio
'''JDBC''' (''Java DataBase Connectivity'')<ref>[http://java.sun.com/javase/technologies/database/ Java SE Technologies - Database<!-- Titolo generato automaticamente -->]</ref>, è un connettore per [[database]] che consente l'accesso alle basi di dati da qualsiasi [[programma (informatica)|programma]] scritto con il [[linguaggio di programmazione Java]], indipendentemente dal tipo di [[DBMS]] utilizzato. È costituita da una [[Application programming interface|API]], raggruppata nel [[package (Java)|package]] ''java.sql'', che serve ai [[client]] per connettersi a un [[database]]. Fornisce [[metodo (informatica)|metodi]] per interrogare e modificare i dati. È orientata ai [[database relazionali]] ed è Object Oriented. La [[piattaforma (informatica)|piattaforma]] [[Java 2 Platform, Standard Edition|Java 2 Standard Edition]] contiene le API JDBC, insieme all'implementazione di un [[JDBC-ODBC Bridge|bridge JDBC-ODBC]], che permette di connettersi a database relazionali che supportino [[ODBC]]. Questo driver è in codice nativo e non in Java.
| Nome = Ekkehart
| Cognome = Krippendorff
| Sesso = M
| LuogoNascita = Eisenach
| GiornoMeseNascita = 22 marzo
| AnnoNascita = 1934
| LuogoMorte = Berlino
| GiornoMeseMorte = 27 febbraio
| AnnoMorte = 2018
| Attività = politologo
| Nazionalità = tedesco
| Immagine =
}}
È considerato uno dei principali esponenti, nonché pioniere, delle [[Peace studies|scienze della pace]]<ref name=altieri>{{cita web |url=http://www.peacelink.it/gdp/docs/2895.pdf |autore=[[Rocco Altieri]] |titolo=Una verità misconosciuta, presentazione di "Lo Stato e la guerra" (su peacelink.it) |accesso=4 settembre 2012 |deadurl=sì |urlarchivio=https://web.archive.org/web/20140111005019/http://www.peacelink.it/gdp/docs/2895.pdf |dataarchivio=11 gennaio 2014 }}</ref><ref name=reitani>{{cita web |url=http://www.uniud.it/ricerca/strutture/centri_interdipartimentali/irene/altri-testi-pubblicati-other-published-texts/Microsoft%20Word%20-%20intervista%20a%20E.%20Krippendorff%20luglio%202007.pdf |autore=[http://people.uniud.it/page/luigi.reitani Luigi Reitani] |titolo=Intervista a Ekkehart Krippendorff (su uniud.it) |accesso=4 settembre 2012 |deadurl=sì |urlarchivio=https://web.archive.org/web/20140111004819/http://www.uniud.it/ricerca/strutture/centri_interdipartimentali/irene/altri-testi-pubblicati-other-published-texts/Microsoft%20Word%20-%20intervista%20a%20E.%20Krippendorff%20luglio%202007.pdf |dataarchivio=11 gennaio 2014 }}</ref>. Ha anche insegnato [[relazioni internazionali]] in [[Italia]], nella [[Università Johns Hopkins|Johns Hopkins]] di [[Bologna]] e nell'[[Università degli Studi di Siena|Università di Siena]]<ref name=vita>{{cita web |url=http://userpage.fu-berlin.de/~kpdff/vitaengl.htm |titolo=Vita (su fu-berlin.de) |accesso=4 settembre 2012 |lingua=en |deadurl=sì |urlarchivio=https://web.archive.org/web/20121102204839/http://userpage.fu-berlin.de/~kpdff/vitaengl.htm |dataarchivio=2 novembre 2012 }}</ref>.
 
==Cenni Architettura biografici==
Nato nel [[1934]] a [[Eisenach]], nella [[Turingia]], dal [[1954]] al [[1959]] ha studiato [[storia]], [[filosofia]] e [[scienza politica]] nelle [[università di Friburgo]], [[Università libera di Berlino|Berlino]] e [[Università di Tubinga|Tubinga]], conseguendo in quest'ultima un [[Dottorato di ricerca|PhD]] in filosofia nel 1959 con [[Theodor Eschenburg]]. Il semestre estivo del [[1965]] è stato noto a [[Berlino Ovest]] come ''Krippendorff-Semester'' (''il semestre di Krippendorff'') per la sua attività politica di [[Sinistra_(politica)|sinistra]] nel giornale berlinese ''Spandauer Volksblatt''; le successive [[Il Sessantotto|rivolte studentesche del 1968]] hanno portato al suo licenziamento dagli incarichi universitari nella [[Università libera di Berlino|Freie Universität]]. Nella fine degli [[Anni 1960|anni sessanta]] è stato membro dell'[[Partito Socialdemocratico di Germania|SPD]] (Partito Socialdemocratico Tedesco) e membro del consiglio del ''Republikanischer Club'' (''Club Repubblicano''). Nel [[1970]] l'Università di Berlino gli ha rifiutato l'abilitazione — apparentemente per ragioni politiche — che conseguirà due anni più tardi a Tubinga con Eschenburg, che era perfettamente a conoscenza delle idee politiche di Krippendorff e, pur non condividendole, decise di non ostacolare la sua carriera accademica. Nel 1973 il Ministro della Cultura del [[Baden-Württemberg]] Wilhelm Hahn ha rigettato l'incarico di Krippendorff all'[[Università di Costanza]] «perché politicamente non adatto»<ref name=spiegel>{{Cita news |autore= |url=http://www.spiegel.de/spiegel/print/d-42650972.html |titolo=Soviel Unvernunft |pubblicazione=Der Spiegel |giorno=19 |mese=febbraio |anno=1973 |accesso=10 settembre 2012 |lingua=de |urlmorto=sì |urlarchivio=https://www.webcitation.org/6AaCPEaQN?url=http://www.spiegel.de/spiegel/print/d-42650972.html |dataarchivio=10 settembre 2012 }}</ref>.
L'architettura di JDBC, così come quella di ODBC, 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 parlare con il JDBC driver manager, mentre il driver manager usa le JDBC driver API per parlare con i singoli driver che pilotano i DBMS specifici. Esiste un driver particolare, il "JDBC-ODBC Bridge", che consente di interfacciarsi con qualsiasi driver ODBC in ambiente [[Windows]].
 
Ha collaborato con numerose università europee ([[Università libera di Berlino|Berlino]], [[Università Johns Hopkins|Johns Hopkins]] di [[Bologna]], [[Università degli Studi di Siena|Siena]], [[Università di Tubinga|Tubinga]], [[University of Sussex|Sussex]] e [[Università degli Studi di Urbino "Carlo Bo"|Urbino]]) e [[Stati Uniti d'America|statunitensi]] ([[Università di Harvard|Harvard]], [[Columbia University|Columbia]], [[Università di Yale|Yale]] e [[Università di New York|New York]]); ha insegnato anche in [[Giappone]] nella prestigiosa [[Università Imperiale di Tokyo]]. Dal [[1978]] al [[1999]] ha ricoperto l'incarico di [[professore]] ordinario di scienza politica nell'Istituto di Studi Nordamericani "John F. Kennedy" presso l'[[Università libera di Berlino]], per poi diventarne, in seguito al pensionamento, professore emerito fino ad oggi ([[2012]])<ref name=vita/>.
== Tipi di driver ==
 
Dal [[2007]] è membro del comitato scientifico del Centro di Ricerca sulla Pace "IRENE", costituito presso l'[[Università degli Studi di Udine|Università di Udine]], che ha curato la traduzione del suo fondamentale libro ''Staat und Krieg'' (''Lo Stato e la Guerra'')<ref name=reitani/><ref name=comitato>{{cita web |url=http://www.uniud.it/ricerca/strutture/centri_interdipartimentali/irene/Comitato_scientifico%20e%20direttore%20da%208.7.08.pdf |titolo=Direttore e Comitato Scientifico |formato=pdf |accesso=5 settembre 2012 |lingua=en |deadurl=sì |urlarchivio=https://web.archive.org/web/20110710115906/http://www.uniud.it/ricerca/strutture/centri_interdipartimentali/irene/Comitato_scientifico%20e%20direttore%20da%208.7.08.pdf |dataarchivio=10 luglio 2011 }}</ref>. Nel [[2010]] ha organizzato e diretto la seconda edizione del Festival della Pace di Udine<ref name=vita/>.
Esistono driver free e commerciali per la maggior parte dei server di database relazionali. I driver possono essere di quattro tipi:
 
==Il pensiero<ref name=pistolato-2011>{{cita pubblicazione |cognome=Pistolato |nome=Francesco |data=20 maggio 2011 |titolo=La ricerca per la pace di Ekkehart Krippendorff. Una biografia intellettuale |rivista=Revista de Paz y Conflictos ([[Università di Granada|Universidad de Granada]]) |volume= |numero=4 |pagine=1-25 |url=http://www.ugr.es/~revpaz/articulos/rpc_n4_2011_art4.pdf |accesso=20 settembre 2012 |lingua=spagnolo |isbn= |urlmorto=sì |urlarchivio=https://www.webcitation.org/6Arymf18i?url=http://www.ugr.es/~revpaz/articulos/rpc_n4_2011_art4.pdf |dataarchivio=22 settembre 2012 }}</ref>==
* [[JDBC-ODBC Bridge|Tipo 1]], il JDBC-ODBC Bridge
===''Lo Stato e la guerra''===
* [[JDBC (API nativa)|Tipo 2]], API nativa
Sebbene abbia espresso un generale apprezzamento per la [[democrazia]] statunitense, Krippendorff ha messo in luce gli [[Imperialismo_(dibattito_storiografico)#L.27imperialismo_statunitense|aspetti imperialistici]] della politica estera americana col saggio del [[1963]] ''Amerikanische Politik in Asien'' (''Politica americana in Asia''), e nel [[1970]] con ''Die amerikanische Strategie'' (''La Strategia americana''). Nel corso degli [[Anni 1980|anni ottanta]] ha partecipato al [[movimento pacifista]] che si opponeva alle [[MRBM|installazioni missilistiche a medio raggio]] in [[Germania]].
* [[JDBC (protocollo di rete)|Tipo 3]], protocollo di rete
* [[JDBC (protocollo nativo)|Tipo 4]], protocollo nativo
 
Nel [[1985]] viene pubblicato il suo libro più importante ''Staat und Krieg'' (''Lo Stato e la Guerra''), divenuto in seguito un classico del pacifismo tedesco. In quest'opera, con l'ausilio di numerosi esempi storici, Krippendorff ha connesso la nascita dello [[Stato_moderno#Lo_Stato_moderno|Stato moderno]] con la necessità di regolamentare e organizzare le milizie [[Mercenario|mercenarie]], per offrire alle [[Governo|classi dirigenti]] sia la forza per difendersi da attacchi esterni che il necessario controllo sui cittadini governati.
== Panoramica dell'API ==
 
L'impianto teorico di ''Staat und Krieg'', teso a dimostrare l'insensatezza delle politiche di potenza, si basa anche su citazioni di filosofi, letterati e altri esponenti delle [[Scienze sociali|scienze umane]]. In particolare, una digressione sul pacifismo [[Lev Tolstoj|tolstoiano]] completa un'opera ricca di spunti e difficilmente categorizzabile, che costituisce una sorta di trattato sulla necessità di [[Democrazia diretta|partecipare direttamente]] alle scelte politiche della propria nazione.
JDBC ammette che esistano diverse [[implementazione|implementazioni]] e vengano utilizzate dalla stessa [[applicazione (informatica)|applicazione]]. L'API fornisce un meccanismo che carica dinamicamente i driver appropriati e li registra nel JDBC Driver Manager. Esso funge da fabbrica di connessioni.
 
===''L'arte di non esser governati''===
Le connessioni JDBC supportano la creazione e l'esecuzione delle [[istruzione (informatica)|istruzioni]]. Esse possono essere comandi [[SQL]] come INSERT, UPDATE, DELETE, interrogazioni come SELECT o chiamate a [[stored procedure]]. I tipi di istruzioni supportati sono:
Risale al [[2000]] ''Die Kunst, nicht regiert zu werden'' (''L'arte di non essere governati''), un'opera che raggruppa vari esempi di politica fondata su un'[[etica]] [[Libertarismo|libertaria]]; secondo Krippendorff tale politica si può attuare solo mediante l'adozione di un [[anarchismo]] [[Cultura|colto]]. Per prendere coscienza e assumere questa prospettiva, vengono indicate figure storiche di riferimento: [[Hannah Arendt|Arendt]], [[Mahatma Gandhi|Gandhi]], [[Richard Wagner|Wagner]], [[Wolfgang Amadeus Mozart|Mozart]], [[Confucio]], [[Laozi|Lao Tse]], [[Socrate]], [[Platone]] e altri. Si tratta quindi di un percorso complesso e al contempo [[Élite (sociologia)|elitario]], volto a costruire una [[cultura]] [[Movimento pacifista|pacifista]] di alto livello.
 
Lungo il medesimo filone di ricerca, lo studioso tedesco ha sviluppato un'[[estetica]] pacifista, con l'obiettivo di creare modelli di politica etica. Questo itinerario di studio è condensato in sei libri dedicati a [[Johann Wolfgang von Goethe|Goethe]], due a [[William Shakespeare|Shakespeare]], uno a [[Francesco d'Assisi|San Francesco d'Assisi]], oltre a vari saggi su [[musica]], [[filosofia]] e [[letteratura]].
* ''Statement'' - l'istruzione viene inviata al database di volta in volta;
* ''Prepared Statement'' - l'istruzione viene [[compilazione|compilata]] una sola volta, in modo che le chiamate successive siano più efficienti;
* ''Callable Statement'' - usati per chiamare le stored procedure.
 
==Pubblicazioni==
I comandi di scrittura come INSERT, UPDATE e DELETE restituiscono un valore che indica quante righe sono state affette (inserite, modificate, cancellate) dall'istruzione. Essi non restituiscono altre informazioni.
===In lingua originale===
*{{Bibliografia |Krippendorff, 1961 | ''Die Liberal-Demokratische Partei Deutschlands in der Sowjetischen Besatzungszone 1945-1948'', Düsseldorf, Droste Verlag, 1961, pp. 178.}}
*{{Bibliografia |Krippendorff, 1970 | ''Die amerikanische Strategie. Entscheidungsprozeß und Instrumentarium der amerikanischen Außenpolitik'', Frankfurt am Main, [[Suhrkamp Verlag]], 1970, pp. 484.}}
*{{Bibliografia |Krippendorff, 1975 | ''Internationales System als Geschichte. Einführung in die internationalen Beziehungen 1'', Frankfurt am Main, Campus Verlag, 1975, pp. 187. ISBN 9783585325072}}
*{{Bibliografia |Krippendorff, 1976 | ''Italien: Der Historische Kompromiß'', in ''Kursbuch'', n. 46, dicembre 1976, pp. 55-74.}}
*{{Bibliografia |Krippendorff, 1977 | ''Internationale Beziehungen als Wissenschaft. Einführung 2'', Frankfurt am Main, Campus Verlag, 1977, pp. 168. ISBN 9783593325347}}
*{{Bibliografia |Krippendorff, 1985 | ''Staat und Krieg. Die historische Logik politischer Unvernunft'', Frankfurt am Main, Suhrkamp Verlag, 1985, pp. 435. ISBN 978-3518113059}}
*{{Bibliografia |Krippendorff, 1986 | ''Internationale Politik: Geschichte und Theorie'', Frankfurt am Main, Campus Verlag, 1986, pp. 302. ISBN 9783593325682}}
*{{Bibliografia |Krippendorff, 1988 | ''Wie die Großen mit den Menschen spielen. Goethes Politik'', Frankfurt am Main, Suhrkamp Verlag, 1988, pp. 168. ISBN 9783518114865}}
*{{Bibliografia |Krippendorff, 1992 | ''Politik in Shakespeares Dramen'', Frankfurt am Main, Suhrkamp Verlag, 1992, pp. 493. ISBN 9783518403884}}
*{{Bibliografia |Krippendorff, 1993 | ''Militärkritik'', Frankfurt am Main, Suhrkamp Verlag, 1993, pp. 224. ISBN 9783518118047}}
*{{Bibliografia |Krippendorff, 1995 | ''Deutsche Außenpolitik. Aus ihrer Geschichte lernen, heißt aus ihr aussteigen'', [[International Physicians for the Prevention of Nuclear War|IPPNW]] (a cura di), in: ''Weltmacht Deutschland?'' (Atti della conferenza), Berlin/Isny im Allgäu, 1995, pp. 11-25.}}
*{{Bibliografia |Krippendorff, 1999 | ''Unzufrieden. Vierzig Jahre Politische Wissenschaft'' (Ultima lezione), in: ''Blätter für deutsche und internationale Politik'', n. 8, 1999, pp. 991-1002.}}
*{{Bibliografia |Krippendorff, 2000 | ''Die Kunst, nicht regiert zu werden. Ethische Politik von Sokrates bis Mozart'', Frankfurt am Main, Suhrkamp Verlag, 2000, pp. 467. ISBN 9783518410394}}
*{{Bibliografia |Krippendorff, 2000-b | ''Kritik der Außenpolitik'', Frankfurt am Main, Suhrkamp Verlag, 2000, pp. 236. ISBN 9783518121399}}
*{{Bibliografia |Krippendorff, 2002 | ''Der Wind bläst der Friedensforschung ins Gesicht'', in: ''S+F Vierteljahresschrift für Sicherheit und Frieden'', n. 4, 2002, pp. 198-200.}}
*{{Bibliografia |Krippendorff, 2007 | ''Shakespeares Komödien'', Berlin, Kadmos Kulturverlag, 2007, pp. 277. ISBN 9783931659875}}
*{{Bibliografia |Krippendorff, 2009 | ''Die Kultur des Politischen. Wege aus den Diskursen der Macht'', Berlin, Kadmos Kulturverlag, 2009, pp. 222. ISBN 9783865990921}}
*{{Bibliografia |Krippendorff, 2012 | ''Lebensfäden. Zehn autobiographische Versuche'', Münster, Verlag Graswurzelrevolution, 2012, pp. 476. ISBN 9783939045199}}
 
===Traduzioni in italiano===
Le interrogazioni ([[query]]) restituiscono un result set (classe ''ResultSet''). È possibile spostarsi nel result set riga per riga (tramite il metodo ''next()''). Si può accedere alle colonne di ogni singola riga chiamandole per nome o per numero. Il result set può essere costituito da un numero qualsiasi di righe. Esso comprende dei metadati che indicano il nome, il tipo e le dimensioni delle colonne.
*{{Bibliografia |Krippendorff, 1991 | ''Politica internazionale: storia e teoria'', Trad. di Antonella Cipriani ed Elisa De Costanzo, Napoli, Liguori, 1991, pp. 363. ISBN 9788820718459}}
 
*{{Bibliografia |Krippendorff, 2003 | ''L'arte di non essere governati. Politica ed etica da Socrate a Mozart'', Trad. di Vinicio Parma, Roma, Fazi Editore, 2003, pp. 328. ISBN 9788881123780}}
Esiste un'estensione di JDBC che permette, tra le altre cose, l'uso di result set scorribili e di [[Cursori (basi di dati)|cursori]] lato client. Si veda la [http://java.sun.com/j2se/1.4.2/docs/api/ documentazione] di [http://www.sun.com/ Sun Microsystems] per maggiori informazioni.
*{{Bibliografia |Krippendorff, 2004 | ''Critica della politica estera'', Trad. di Elisabetta Dal Bello, Roma, Fazi Editore, 2004, pp. 251. ISBN 9788881125005}}
 
*{{Bibliografia |Krippendorff, 2005 | ''Shakespeare politico. Drammi storici, drammi romani, tragedie'', Trad. di Robin Benatti e Francesca Materzanini, Roma, Fazi Editore, 2005, pp. 346. ISBN 9788881126798}}
=== Le eccezioni ===
*{{Bibliografia |Krippendorff, 2009 | ''Lo stato e la guerra. L'insensatezza delle politiche di potenza'', Trad. di Francesco Pistolato, Pisa, Centro Gandhi, 2009, pp. 352. ISBN 9788875000189}}
Tutti i metodi delle API JDBC possono lanciare [[eccezione (informatica)|eccezioni]], in quanto la connessione al DBMS in ogni momento può subire una interruzione o comunque si possono verificare errori nell'[[esecuzione (informatica)|esecuzione]] dei comandi SQL.
Tutte le eccezioni di JDBC derivano dalla [[classe (informatica)|classe]] ''SQLException'' e possono anche essere concatenate tra loro più eccezioni diverse. Ogni eccezione contiene un messaggio descrittivo, una stringa contenente lo stato SQL (conforme a quanto indicato nella specifica XOPEN SQL) e un intero contenente un codice errore addizionale specifico per il particolare driver o sorgente utilizzati.
 
== Esempi ==
 
Il metodo Class.forName() carica la classe del driver JDBC. La linea seguente carica il driver per ''mioDbms'' nell'applicazione.
<source lang=java>
Class.forName( "com.mioDbms.mioDriver" );
</source>
Poi, il metodo DriverManager.getConnection() crea una connessione.
<source lang=java>
Connection conn = DriverManager.getConnection(
"jdbc:mioDbms:altri dati utili per il driver",
"mioLogin",
"miaPassword" );
</source>
La stringa da utilizzare dipende dal driver JDBC che useremo. Inizia sempre con "jdbc:", il resto varia a seconda del prodotto scelto. Una volta stabilita la connessione, occorre passare una istruzione.
<source lang=java>
Statement stmt = conn.createStatement();
stmt.executeUpdate( "INSERT INTO miaTabella( nome ) VALUES ( 'andrea' ) " );
</source>
I dati vengono prelevati dal database col classico meccanismo delle query. L'esempio sottostante mostra come creare ed eseguire un'interrogazione:
<source lang=java>
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery( "SELECT * FROM miaTabella" );
while ( rs.next() ) {
int numeroColonne = rs.getMetaData().getColumnCount();
for ( int i = 1 ; i <= numeroColonne ; i++ ) {
// I numeri di colonna iniziano da 1.
// Vi sono diversi metodi che convertono il valore di una colonna in un certo tipo.
// Vedi la documentazione per una lista delle conversioni valide.
System.out.println( "COLONNA " + i + " = " + rs.getObject(i) );
}
}
rs.close();
stmt.close();
</source>
È raro, però, che un [[programmatore]] Java scriva codice in questo stile. Il modo più diffuso è inserire la logica del database in una classe differente e passare le stringhe SQL già elaborate (magari derivanti anch'esse da un'altra classe) e la connessione ai metodi che ne hanno bisogno.
 
Un esempio di Prepared Statement. Si utilizza la connessione dell'esempio precedente.
<source lang=java>
try {
ResultSet rs;
PreparedStatement ps = conn.prepareStatement(
"SELECT i.*, j.* FROM Omega i, Zappa j WHERE i = ? AND j = ?" );
// Nel prepared statement ps, i punti di domanda denotano le variabili in input,
// che possono essere passate attraverso una lista di parametri, per esempio.
// Il codice seguente sostituisce i punti di domanda con stringhe o interi.
// Il primo parametro indica la posizione in cui il valore va inserito,
// il secondo parametro è il valore da inserire.
ps.setString(1, "Poor Yorick");
ps.setInt(2, 8008);
// Il ResultSet rs riceve la risposta del database.
rs = ps.executeQuery();
while ( rs.next() ) {
int numeroColonne = rs.getMetaData().getColumnCount();
for ( int i = 1 ; i <= numeroColonne ; i++ ) {
System.out.println( "COLONNA " + i + " = " + rs.getObject(i) );
}
rs.close();
ps.close();
} catch (SQLException e) {
// gestione delle eccezioni
}
</source>
'''Seguono alcuni esempi di conversioni tra il DBMS e Java.'''
{| BORDER CELLSPACING="0" CELLPADDING="3"
|----- class="FormalW"
! ALIGN="LEFT" VALIGN="TOP" class="FormalW" | '''<span style="font-family:Arial, Helvetica, sans-serif">Tipi Oracle</span>'''
! ALIGN="LEFT" VALIGN="BOTTOM" class="FormalW" | '''<span style="font-family:Arial, Helvetica, sans-serif">Metodi Java</span>'''
|----- ALIGN="LEFT" VALIGN="TOP" class="FormalW"
| class="FormalW" |
<div class="TB">CHAR&nbsp;</div>
 
| class="FormalW" |
<div class="TB">setString()</div>
|----- ALIGN="LEFT" VALIGN="TOP" class="FormalW"
| class="FormalW" |
<div class="TB">VARCHAR2&nbsp;</div>
 
| class="FormalW" |
<div class="TB">setString()</div>
|----- ALIGN="LEFT" VALIGN="TOP" class="FormalW"
| class="FormalW" |
<div class="TB">LONG&nbsp;</div>
 
| class="FormalW" |
<div class="TB">setString()&nbsp;</div>
|----- ALIGN="LEFT" VALIGN="TOP" class="FormalW"
| ROWSPAN="8" class="FormalW" |
<div class="TB">NUMBER&nbsp;</div>
 
| class="FormalW" | setBigDecimal()
|----- ALIGN="LEFT" VALIGN="TOP" class="FormalW"
| class="FormalW" |
<div class="TB">setBoolean()&nbsp;</div>
|----- ALIGN="LEFT" VALIGN="TOP" class="FormalW"
| class="FormalW" |
<div class="TB">setByte()&nbsp;</div>
|----- ALIGN="LEFT" VALIGN="TOP" class="FormalW"
| class="FormalW" |
<div class="TB">setShort()&nbsp;</div>
|----- ALIGN="LEFT" VALIGN="TOP" class="FormalW"
| class="FormalW" |
<div class="TB">setInt()&nbsp;</div>
|----- ALIGN="LEFT" VALIGN="TOP" class="FormalW"
| class="FormalW" |
<div class="TB">setLong()&nbsp;</div>
|----- ALIGN="LEFT" VALIGN="TOP" class="FormalW"
| class="FormalW" |
<div class="TB">setFloat()&nbsp;</div>
|----- ALIGN="LEFT" VALIGN="TOP" class="FormalW"
| class="FormalW" |
<div class="TB">setDouble()</div>
|----- ALIGN="LEFT" VALIGN="TOP" class="FormalW"
| class="FormalW" | INTEGER || class="FormalW" | setInt()
|----- ALIGN="LEFT" VALIGN="TOP" class="FormalW"
| class="FormalW" | FLOAT || class="FormalW" | setDouble()&nbsp;
|----- ALIGN="LEFT" VALIGN="TOP" class="FormalW"
| class="FormalW" | CLOB || class="FormalW" | setClob()&nbsp;
|----- ALIGN="LEFT" VALIGN="TOP" class="FormalW"
| class="FormalW" | BLOB || class="FormalW" | setBlob()&nbsp;
|----- ALIGN="LEFT" VALIGN="TOP" class="FormalW"
| class="FormalW" |
<div class="TB">RAW</div>
 
| class="FormalW" |
<div class="TB">setBytes()</div>
|----- ALIGN="LEFT" VALIGN="TOP" class="FormalW"
| class="FormalW" |
<div class="TB">LONGRAW&nbsp;</div>
 
| class="FormalW" |
<div class="TB">setBytes()&nbsp;</div>
|----- ALIGN="LEFT" VALIGN="TOP" class="FormalW"
| ROWSPAN="3" class="FormalW" |
<div class="TB">DATE&nbsp;</div>
 
| class="FormalW" |
<div class="TB">setDate()&nbsp;</div>
|----- ALIGN="LEFT" VALIGN="TOP" class="FormalW"
| class="FormalW" |
<div class="TB">setTime()&nbsp;</div>
|----- ALIGN="LEFT" VALIGN="TOP" class="FormalW"
| class="FormalW" |
<div class="TB">setTimestamp()&nbsp;</div>
|}
 
=== Chiusura delle connessioni ===
Il rilascio delle risorse allocate durante le operazioni su database, in particolare l'[[oggetto (informatica)|oggetto]] ''connection'', è particolarmente critica, in quanto il numero totale delle connessioni disponibili è limitato e normalmente la connessione al DB non viene rilasciata automaticamente quando non è più utilizzata.
 
Per essere sicuri che una connessione sia chiusa correttamente, anche in caso di eccezione, conviene utilizzare la ''finally''. Inoltre bisogna prestare particolare attenzione a non sollevare ulteriori eccezioni nel blocco finally:
<source lang=java>
Connection con=null;
try {
con = DriverManager.getConnection ( URL, “”, “”);
// utilizzo la connessione
...
} catch(Exception e){
...
} finally {
if (con != null) con.close();
}
</source>
 
==Note==
<references/>
 
== Voci correlate ==
* [[DBMSNonviolenza]]
* [[ODBCPacifismo]]
* [[SQL]]
* [[Cursori (basi di dati)]]
 
== Collegamenti esterni ==
 
==Collegamenti esterni==
*{{en}} [http://java.sun.com/docs/books/tutorial/post1.0/whatsnew/jdbc.html Sun tutorial]
*[http://www.fantiniartemente.com/index.php?option=com_k2&view=item&id=113:guerra-e-pace&Itemid=35 Guerra e pace, conversazione con Ekkehart Krippendorff], a cura di Roberto Fantini <small>([https://www.webcitation.org/6AQUkLnJe?url=http://www.fantiniartemente.com/index.php?option=com_k2 archiviato])</small>
*{{en}} [http://java.sun.com/j2se/1.4.1/docs/api/ Sintassi delle API in Java 2 1.4.1]
*[https://www.academia.edu/38332080/Ekkart_Krippendorf Stato e guerra]
*{{en}} [http://java.sun.com/developer/technicalArticles//Database/dukesbakery/ Duke's Bakery - A JDBC Order Entry Prototype]
* {{de}} [https://web.archive.org/web/20120911174719/http://userpage.fu-berlin.de/~kpdff/ Pagina personale di Krippendorff]sul sito dell'[[Università libera di Berlino]] <small>()</small>
*{{en}} [http://java.sun.com/developer/technicalArticles//Database/dbaccessor/ DBAccessor: A JDBC Wrapper Package]
*{{en}} [http://java-source.net/open-source/database-engines List of Java Open Source Databases with JDBC drivers]
 
{{Controllo di autorità}}
{{Portale|Informatica}}
{{Portale|biografie}}
 
[[Categoria:LinguaggioPeace Javastudies]]
[[Categoria:PiattaformaPolitologi Javatedeschi]]
[[Categoria:Software per basi di dati]]