Connettività del database Java

Conosci le basi di SQL. Questo è buono. Ma oggi ti sentirai ancora meglio. Oggi inizierai a imparare come lavorare con un database da un'applicazione Java.

Esistono molti DBMS diversi, quindi i creatori di Java hanno deciso di standardizzare il modo in cui un'applicazione Java funziona con i database. E hanno chiamato questo standard JDBC : Java DataBase Connectivity .

JDBC ha 3 interfacce principali:

  • Connessione : responsabile della connessione al database
  • Dichiarazione - responsabile dell'interrogazione del database
  • ResultSet - responsabile del risultato della query al database

In effetti, questo è tutto. E non impareremo nemmeno tutti i metodi di tutte le interfacce. Solo esempi funzionanti, che complicheremo gradualmente.

JDBC è in qualche modo simile al lavoro con i servlet. I creatori di JDBC hanno scritto diverse interfacce e le chiamano con orgoglio Java DataBase API. E l'implementazione di queste interfacce è stata assegnata a ... i creatori del DBMS. Come viene implementato lì - a nessuno importa. Funziona bene.

Esistono quattro versioni di JDBC e esamineremo l'ultima. E non perché sia ​​​​la più bella, ma perché è la più semplice.

Gestore driver JDBC

L'applicazione Java e il database comunicano tra loro tramite una libreria chiamata driver JDBC. Questo è un insieme di classi che implementano l'API JDBC per un particolare DBMS.

Il driver JDBC corretto viene selezionato utilizzando una classe chiamata DriverManager . La loro interazione può essere rappresentata come segue:

Il fatto è che puoi utilizzare In-Memory-DB, No-SQL-DB o persino un database integrato in un'app Android. Come sviluppatore Java, queste sfumature non ti riguardano affatto. Il Driver Manager selezionerà il driver JDBC corretto per te e tutto funzionerà come un orologio.

A proposito, come fa?

Connessione al server MySQL

Ricordi di cosa avevi bisogno per connetterti a un server SQL locale tramite MySQL Workbench? Se ho dimenticato, allora ti ricordo che avevi bisogno di tre cose:

  • ospite
  • login
  • parola d'ordine

Tutto è chiaro con login e password e host, se ricordi, è il nome del computer su cui si trova il server. Se si trova sul tuo computer locale, devi specificare localhost come nome host. E se non è locale?

Quindi devi usare ... URL. URL sta per Universal Resource Locator . Può essere utilizzato per specificare la posizione di qualsiasi cosa sulla rete: un sito, una stampante, un server SQL. Infatti, l'URL viene utilizzato anche per accedere al server SQL locale. Assomiglia a questo:

mysql://localhost:3306/db_scheme
  • mysql è un protocollo server
  • localhost - nome host sulla rete
  • 3306 - porta su cui vengono effettuate le richieste
  • db_scheme - nome schema (nome database)

Nota. Il nome del database può essere omesso. Ma se il server memorizza molti schemi di database, di solito vengono creati per loro utenti diversi e diritti di accesso diversi. E se l'utente con cui accedi al server SQL non ha accesso a tutti i database, devi assolutamente specificare il nome del database specifico a cui hai accesso.

Alla fine di questo url possono esserci vari parametri, tipi di codifica, fuso orario, che sono considerati parametri per la nuova connessione al database che viene stabilita.

Inoltre, il protocollo può essere composito. Se tutte le comunicazioni con il server del database avvengono su un canale crittografato utilizzando il protocollo SSH, l'URL può essere specificato in questo modo:

ssh:mysql://localhost:3306/db_scheme

Un protocollo non è necessariamente un programma esterno. Ad esempio, se stai lavorando con un server che utilizza il protocollo JNDI, puoi specificarlo in questo modo:

jndi:mysql://localhost:3306/db_scheme

E se vuoi lavorare utilizzando il protocollo API JDBC, devi scrivere in questo modo:

jdbc:mysql://localhost:3306/db_scheme

Quando provi a creare una connessione al database, JDBC Driver Manager analizza il tuo SQL-db-URL e determina il nome del driver JDBC dal nome del protocollo. Ecco un piccolo trucco.