Lavorare con i database in Java

Sommario
Giava Essendo un linguaggio multiuso, oltre alle diverse funzionalità che possiamo ottenere, ci permette anche di lavorare con la persistenza dei dati, per questo possiamo connetterci con i diversi motori di Banche dati che esistono sul mercato.
UN Banca dati Può essere qualcosa di semplice come un sistema chiave-valore in un file di testo normale, così come soluzioni più complesse e moderne come quelle non relazionali, questo rende la possibilità di sviluppare diversi schemi di connessione una caratteristica obbligatoria.
JDBC sono un insieme di classi che consentono Giava stabilire connessioni con i motori di Database, questo ci permette di ottenere i risultati delle query in un oggetto chiamato Set di risultati.
Poiché ogni motore è diverso, è probabile che il Set di risultati che riceviamo è particolare ad esso, ecco perché non è conveniente per noi strutturare la nostra applicazione attorno a tale oggetto.
Per risolvere questo problema possiamo usare quello che viene chiamato a oggetto di accesso, con cui possiamo gestire le diverse forme del nostro Set di risultati rendendo la tua applicazione all'interno del nostro programma più facile da implementare e quindi lo sviluppatore ha meno problemi.
Il modello di progettazione DAOIl Oggetto di accesso ai dati o DAO È un design pattern che raccoglie quanto spiegato nel punto precedente, questo ci richiede di creare una classe di accesso alle proprietà del nostro Banca dati. Per fare questo lavoro dobbiamo fare tutto il lavoro JDBC e il controller che ci consente di connetterci con il particolare motore che desideriamo, inoltre dobbiamo eseguire l'implementazione logica che spieghiamo per evitare la dipendenza da componenti specifici che ci renderebbero solo difficile la migrazione a un motore di database diverso.
La prima cosa che dobbiamo fare per costruire una connessione JDBC è identificare quale è il motore a cui vogliamo fare la connessione e quindi ottenere le classi necessarie per detta connessione, in questo caso faremo una connessione MySQL, questo motore è leggero, gratuito e multipiattaforma, quindi possiamo installarlo sia in Windows, Linux o Mac.
Connettore / J è l'insieme delle classi offerte dal team di sviluppo di MySQL, con loro possiamo fare JDBC collaborare con questo Banche dati relazionale, per incorporarlo nel nostro progetto dobbiamo seguire i seguenti passaggi.
1- Dobbiamo scaricare anche il file corrispondente alla nostra piattaforma finestre o per altri dal sito ufficiale di MySQL Al seguente link.

INGRANDIRE

2- In questo tutorial lavoreremo sotto Windows quindi per la sua implementazione nei nostri esempi lo faremo a runtime per una maggiore facilità, tuttavia quando scarichiamo il pacchetto lo installiamo per averlo disponibile sul nostro computer.
3- Ora procederemo a testare che tutto funzioni correttamente sul nostro computer, per questo creeremo un piccolo codice dove vedremo se connettore / J è stato caricato con successo nel nostro sistema, per questo utilizzeremo il seguente codice:
 public class ConnectionTest {public static void main (String [] args) {try {Class c = Class.forName ("com.mysql.jdbc.Driver"); System.out.println ("Classe caricata:" + c.getName ()); } catch (ClassNotFoundException es) {System.err.println (es); }}} 

4- Per eseguire questo esempio dobbiamo includere la dipendenza, si consiglia di avere il .vaso nello stesso percorso del nostro file TestConexion.java. Con questo coperto andremo a compilare il nostro file, apriamo una console e con le istruzioni javac e aggiungendo .vaso al percorso di classe in fase di esecuzione con il comando -cp Possiamo farlo, vediamo la riga di comando:
 javac -cp mysql-connector-java-5.1.34-bin.jar ConnectionTest.java 

5- Infine, per eseguire il nostro file, dobbiamo solo eseguire la seguente istruzione:
java -cp mysql-connector-java-5.1.34-bin.jar TestConnection

Se abbiamo un risultato come il seguente nella nostra console, possiamo iniziare a lavorare con le operazioni per Banche dati:

INGRANDIRE

Il prossimo passo che dobbiamo fare è stabilire una connessione efficace con il nostro Banca dati, per questo dobbiamo crearne uno con almeno una tabella sul nostro server locale, in questo modo possiamo eseguire dei test, per semplificare le cose creiamo un Database chiamato test e utilizziamo il seguente script per creare la tabella e inserire alcuni record di test, questo per velocizzare lo sviluppo del tutorial:

CREA TABELLA SE NON ESISTE `utenti` (
`id` bigint (20) NOT NULL AUTO_INCREMENT,
`nome` varchar (255) NOT NULL,
`data` data NOT NULL,
`state` int (11) NOT NULL,
CHIAVE PRIMARIA (`id`)
) ENGINE = InnoDB DEFAULT CHARSET = latin1 AUTO_INCREMENT = 3;
INSERISCI IN VALORI `utenti` (` id`, `nome`,` data`, `stato`)
(1, 'Utente 1', '01-01-2015', 1),
(2, "Utente 2", "01-01 2015", 1);

Ora nel seguente codice di Giava ci concentreremo sullo stabilire la connessione con il Banca dati, per questo con a prova a bloccare il blocco Convalideremo che sia efficace e senza errori, quindi se la connessione è stata stabilita stamperemo un messaggio di successo, vediamo:
 import java.sql.Connection; import java.sql.DriverManager; public class ConnectionTest {private static final String path = "jdbc: mysql: // localhost"; private static final String user = "nostro utente"; private static final String password = "la nostra password"; public static void main (String [] args) {try {Connection con = DriverManager.getConnection (percorso, utente, password); System.out.println ("Connessione riuscita"); } catch (eccezione e) {e.printStackTrace (); }}} 

Da questo codice possiamo vedere che dobbiamo importare due librerie dal pacchetto java.sql, uno è Connessione che si occupa di gestire tutte le attività per poter comunicare con il Database e l'altro è Gestore dispositivi che è responsabile di fornire il modo in cui comunicheremo con esso. Se abbiamo seguito correttamente i passaggi, dovremmo vedere il seguente messaggio quando eseguiamo il nostro esempio nella console:

INGRANDIRE

Abbiamo tutto pronto per iniziare a testare le nostre query, per questo avremo bisogno di diverse cose, la prima che abbiamo già è l'oggetto che effettua la connessione al Banca dati, quindi dovremo importare i pacchetti DichiarazioneSet di risultati con cui possiamo prima inviare query e poi ottenere la risposta delle stesse, infine passiamo attraverso l'oggetto RisultatoSet dove mostreremo i dati inseriti nella tabella e prima di chiudere il programma dovremo chiudere ciascuno degli oggetti che abbiamo creato, in questo modo garantiremo l'integrità dei nostri dati. Vediamo il codice che mostra quanto spiegato:
 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class ConnectionTest {private static final String path = "jdbc: mysql: // localhost / test"; private static final String user = "nostro utente"; private static final String password = "la nostra password"; public static void main (String [] args) {try {Connection con = DriverManager.getConnection (percorso, utente, password); Query sull'istruzione = con.createStatement (); System.out.println ("Connessione riuscita"); ResultSet risultato = query.executeQuery ("SELECT * FROM utenti"); while (result.next ()) {Nome stringa = result.getString ("nome"); Stringa data = risultato.getString ("data"); System.out.println ("Nome:" + nome + "Data di registrazione:" + data); } risultato.chiudi (); query.close (); con.close (); } catch (eccezione e) {e.printStackTrace (); }}} 

È importante ricordare che nel nostro attributo itinerario Lo abbiamo modificato e il nome del Banca dati chiamata test dove dobbiamo creare la nostra tabella utenti, compilare il nostro file ed eseguire, il risultato per console sarebbe come mostrato nell'immagine seguente:

INGRANDIRE

Avendo osservato l'esempio della connessione e delle query al Database, possiamo vedere che dobbiamo utilizzare una figura chiamata Preparare la dichiarazione che semplifica il nostro lavoro lasciando le query preparate in modo da poterle eseguire più volte senza doverle costruire più e più volte, per ottenere questa dinamica sostituiamo i valori che dobbiamo modificare per le variabili e poi quando eseguiamo il query gli passiamo i valori reali da usare.
VantaggioQuesto ha diversi vantaggi, abbiamo già detto che il primo è poter usare qualcosa senza ripeterlo, ma è anche per sicurezza, poiché questo ci permette di trattare i valori che eventualmente provengono dall'input dell'utente per evitare un attacco al nostro Database, oltre a possiamo anche facilitare la leggibilità del nostro programma.
Nell'esempio seguente creeremo una query con Discorso preparato, in modo che possa essere utilizzato più volte durante il nostro programma. Vediamo il codice risultante:
 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.PreparedStatement; public class PreparedStatementTest {private static final String path = "jdbc: mysql: // localhost / test"; private static final String user = "nostro utente"; private static final String password = "la nostra password"; public static void main (String [] args) {try {Connection con = DriverManager.getConnection (percorso, utente, password); query PreparedStatement = con.prepareStatement ("SELECT * FROM utenti Dove id =?;"); System.out.println ("Connessione riuscita"); query.setInt (1, 1); ResultSet risultato = query.executeQuery (); while (result.next ()) {Nome stringa = result.getString ("nome"); Stringa data = risultato.getString ("data"); System.out.println ("Nome:" + nome + "Data di registrazione:" + data); } risultato.chiudi (); query.close (); con.close (); } catch (eccezione e) {e.printStackTrace (); }}} 

Notiamo che usando il metodo setInt Con l'oggetto query possiamo passare il parametro necessario per la query, con questo possiamo staccarlo dall'esecuzione della query, ottenendo così portabilità e facilità di lettura. Per finire, compiliamo ed eseguiamo il nostro programma:

INGRANDIRE

Con questo finiamo questo tutorial, mentre vediamo le opzioni con cui lavorare Banche dati in Giava Sono molto interessanti poiché ci consentono di incorporare flessibilità e versatilità nelle nostre applicazioni, la cosa più importante è che se abbiamo esperienza con altre lingue, verrà sicuramente utilizzata qui.

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave