2010-04-26 13 views
10

qualcuno può dirmi come funziona jdbc? Come riesce a comunicare con un DBMS? poiché il DBMS può essere scritto con un altro linguaggio di programmazione.Come funziona jdbc

risposta

1

Dal wikipedia page:

Tipi

There are commercial and free drivers available for most relational database servers. These drivers fall into one of the following types: 
Type 1 that calls native code of the locally available ODBC driver. 
Type 2 that calls database vendor native library on a client side. This code then talks to database over network. 
Type 3, the pure-java driver that talks with the server-side middleware that then talks to database 
Type 4, the pure-java driver that uses database native protocol 
2

La maggior parte dei sistemi di database di supporto ODBC (Open Database Connectivity o altro). Questo ha lo scopo di consentire alle applicazioni (ad esempio, Access) di funzionare con più implementazioni RDBMS al costo di un certo impatto sulle prestazioni. Quando è stato rilasciato per la prima volta JDBC, c'era un driver che permetteva di connettersi a un provider ODBC. In seguito, alcuni fornitori hanno fornito driver JDBC specifici per il loro RDMS.

Dal punto di vista dello sviluppatore, JDBC viene utilizzato come un insieme di interfacce. Tutti i dettagli effettivi sono nascosti nel caricamento del driver. Il driver è una classe Java che può utilizzare qualsiasi trucco del libro, incluso il codice nativo o semplicemente l'invio di traffico di rete all'RDBMS.

5

Da Wikipedia:

driver JDBC sono adattatori lato client (installato sulla macchina client , non sul server) che convertono le richieste da programmi Java ad un protocollo che il DBMS può capire. [modifica] Tipi

Sono disponibili driver commerciali e gratuiti per la maggior parte dei server di database relazionali . Questi driver rientrano in uno dei seguenti tipi:

  • Tipo 1 che chiama il codice nativo del driver ODBC disponibile localmente.
  • Tipo 2 che chiama la libreria nativa del fornitore del database su un lato client. Questo codice quindi comunica con il database sulla rete.
  • Tipo 3, il driver puro Java che parla con il middleware lato server che poi parla del database
  • tipo 4, il driver puro Java che utilizza database di protocollo nativo
+1

Come sopra riportato, i driver JDBC conversano le chiamate dell'API JDBC in un protocollo che DBMS può comprendere; che protocollo è quello? La definizione del protocollo è disponibile in modo che possiamo dare un'occhiata? – CuriousMind

1

Da Wikipedia :

JDBC è un'API per il linguaggio di programmazione Java che definisce il modo in cui un client può accedere a un database. Fornisce metodi per interrogare e aggiornare i dati in un database. JDBC è orientato verso database relazionali.

JDBC è stato introdotto per la prima volta nella piattaforma Java 2, Standard Edition, versione 1.1 (J2SE), insieme a un bridge JDBC-to-ODBC di implementazione di riferimento, che consente connessioni a qualsiasi origine dati accessibile ODBC nell'ambiente host JVM.

Senza entrare troppo nel dettaglio, è possibile pensare a JDBC come a un livello di astrazione che consente di parlare con diversi database. I dettagli specifici dell'implementazione sono nascosti da te, ma l'interfaccia per interrogare un database (sia esso MySQL o Oracle o qualsiasi altra cosa) è la stessa.

Ciò significa che in futuro, se esistesse un nuovo database, qualcuno dovrà solo utilizzare l'interfaccia esistente. I nomi dei metodi sarebbero uguali, ma i metodi conterrebbero codice specifico per l'implementazione per quel particolare database. Questo è un modello comune di ingegneria del software.

L'entità che contiene il codice specifico dell'implementazione è denominata JDBC driver. Il driver JDBC fornisce una connessione al database e implementa anche il protocollo specifico per l'invio della query al database e il set di risultati al client.

7

La comunicazione con il database viene gestita dai driver JDBC che possono utilizzare varie strategie per "parlare" a un database (dalla "traduzione" all'uso della lingua "nativa"). A seconda della strategia utilizzata, i driver sono suddivisi in 4 tipi. Types of JDBC technology drivers fornire una buona descrizione di ciascuna di esse:

  1. ponte Una JDBC-ODBC fornisce accesso JDBC API tramite uno o più ODBC driver. Si noti che alcuni codice nativo ODBC e in molti casi il codice client del database nativo devono essere caricati su ciascun computer client che utilizza questo tipo di driver . Quindi, questo tipo di driver è generalmente più appropriato quando l'installazione e il download automatici di di un'applicazione di tecnologia Java sono non importanti. Per informazioni sul driver bridge JDBC-ODBC fornito da Sun, vedere Driver Bridge JDBC-ODBC.

  2. A API nativo parzialmente Java conducente abilitato alla tecnologia converte chiamate JDBC in chiamate sul client API per Oracle, Sybase, Informix, DB2, o altri DBMS. Si noti che, come il driver bridge , questo tipo di driver richiede che un codice binario sia caricato su ciascun computer client.

  3. A-protocollo di rete completamente conducente abilitato alla tecnologia Java traduce JDBC API chiama in un protocollo di rete DBMS indipendente che viene poi tradotto ad un protocollo DBMS da un server. Questo middleware del server n. è in grado di di connettersi tutti i suoi client basati su tecnologia Java a molti database diversi. Il protocollo specifico utilizzato dipende dal fornitore. In generale, questa è l'alternativa JDBC API più flessibile. È probabile che sia che tutti i fornitori di questa soluzione forniranno prodotti adatti per l'uso di Intranet . Affinché questi prodotti siano compatibili con l'accesso a Internet , è necessario che gestisca i requisiti aggiuntivi per la sicurezza , l'accesso tramite i firewall, ecc., Che il Web impone. Diversi venditori di aggiungono i driver basati su tecnologia JDBC ai loro prodotti middleware di database esistenti .

  4. Un nativo-protocollo conducente abilitato alla tecnologia completamente Java converte tecnologia chiamate JDBC nel protocollo di rete utilizzato dal DBMS direttamente. Questo consente una chiamata diretta dalla macchina client al server DBMS ed è una soluzione pratica per l'accesso Intranet . Poiché molti di questi protocolli sono proprietari, i fornitori di database saranno la fonte principale per questo tipo di driver. Diversi fornitori di database hanno questi in progresso .

Come possiamo vedere, ci sono varie strategie per rendere possibile l'interoperabilità, tra cui l'attuazione del protocollo di rete utilizzato da un determinato database in Java (tipo 4). E a causa della loro facilità d'uso (niente roba da installare, niente JNI) e le loro buone prestazioni (ora funzionano come i driver di tipo 2), il tipo 4 è attualmente il più usato al giorno d'oggi.

0

Non posso dire di conoscere la risposta esatta alla tua domanda, ma ecco alcune informazioni per aiutarti.

Ecco un ottimo punto di partenza:

http://java.sun.com/products/jdbc/overview.html

L'API JDBC contiene due principali tipi di interfacce: il primo è l'API JDBC per scrittori di applicazione, e il secondo è il livello inferiore API del driver JDBC per scrittori di driver.

Informazioni per gli sviluppatori di driver JDBC. Fondamentalmente ci sono un insieme di interfacce implementate da uno sviluppatore per creare un driver JDBC per un particolare DBMS.

http://java.sun.com/products/jdbc/driverdevs.html

Per quanto riguarda un DBMS di essere scritta in una lingua diversa. È probabile che questo DBMS esponga alcune API (in varie lingue e/o formati) che consentono ai driver, come JDBC, di comunicare con il DBMS.