Come connettersi a un database MySQL con Java
Java fornisce JDBC (Java DataBase Connectivity) come parte del Java SDK (Software Development Kit). Usando questa API, è molto facile connettersi a un database relazionale Che cos'è un database, comunque? [MakeUseOf Explains] Quindi, che cos'è un database, comunque? [MakeUseOf Explains] Per un programmatore o un appassionato di tecnologia, il concetto di un database è qualcosa che può davvero essere dato per scontato. Tuttavia, per molte persone il concetto stesso di un database è un po 'estraneo ... Leggi di più ed esegui operazioni comuni come l'interrogazione, l'inserimento, l'aggiornamento e l'eliminazione dei record.
Mentre l'API JDBC principale è inclusa in Java, la connessione a un particolare database come MySQL o SQL Server richiede un componente aggiuntivo noto come driver del database. Questo driver di database è un componente software che traduce le chiamate JDBC di base in un formato compreso da quel database.
In questo articolo, esaminiamo i dettagli di connessione a un database MySQL e come eseguire alcune query con esso.
Il driver del database MySQL
Come spiegato sopra, per essere in grado di connettersi a un database MySQL, è necessario il driver JDBC per MySQL. Questo è chiamato il driver Connector / J e può essere scaricato dal sito MySQL qui.
Una volta scaricato il file ZIP (o TAR.GZ), estrai l'archivio e copia il file JAR mysql-connector-java-bin.jar in una posizione adatta. Questo file è necessario per l'esecuzione di qualsiasi codice che utilizza il driver JDBC MySQL.
Creazione di un database di esempio
Supponendo di aver scaricato il database MySQL e configurato correttamente Come installare un database MySQL su Windows Come installare un database MySQL su Windows Se si scrivono spesso applicazioni che si connettono a server di database, è utile sapere come installare un database MySQL sul tuo computer Windows a scopo di test. Leggi di più dove hai accesso, creiamo un database di esempio in modo che possiamo usarlo per la connessione e l'esecuzione di query.
Connettiti al database usando un client di tua scelta ed esegui le seguenti istruzioni per creare un database di esempio.
creare un campione di database;
Abbiamo anche bisogno di un nome utente e una password per poterci connettere al database (a meno che tu non voglia collegarti come amministratore, che in genere è una cattiva idea).
Di seguito viene creato un utente denominato testuser chi si connetterà al database MySQL dalla stessa macchina su cui è in esecuzione (indicato da localhost), utilizzando la password securepwd.
crea utente 'testuser' @ 'localhost' identificato da 'securepwd';
Se ci si connette a un database in esecuzione su un altro computer (denominato remotemc), è necessario utilizzare quanto segue (remotemc può essere un nome host o un indirizzo IP):
crea l'utente 'testuser' @ 'remotemc' identificato da 'securepwd';
Ora che il nome utente e la password sono stati creati, dobbiamo concedere l'accesso al database di esempio creato in precedenza.
concedere tutto sul campione. * a 'testuser' @ 'localhost';
Oppure, se il database è remoto:
concedere tutto sul campione. * a 'testuser' @ 'remotemc';
Ora dovresti verificare di poterti connettere al database Come installare un database MySQL su Windows Come installare un database MySQL su Windows Se scrivi spesso applicazioni che si connettono a server di database, è bello sapere come installare un database MySQL su la tua macchina Windows a scopo di test. Leggi di più come l'utente appena creato con la stessa password. Puoi anche eseguire i seguenti comandi dopo la connessione, per assicurarti che tutte le autorizzazioni siano corrette.
create table joe (id int chiave primaria auto_increment, nome varchar (25)); drop table joe;
Impostare il percorso della classe Java
Vediamo ora i dettagli su come connettersi a MySQL da Java 10 Core Java Concetti da imparare quando si inizia 10 Concetti fondamentali di Java da imparare quando si inizia Se si sta scrivendo una GUI, si sta sviluppando un software lato server o una applicazione mobile con Android, l'apprendimento di Java ti servirà bene. Ecco alcuni concetti base di Java per aiutarti a iniziare. Leggi di più . Il primo passo è caricare il driver del database. Ciò avviene invocando quanto segue in un luogo adatto.
Class.forName ( "com.mysql.jdbc.Driver");
Il codice potrebbe generare un'eccezione, quindi puoi prenderlo se intendi affrontarlo (ad esempio formattando il messaggio di errore per una GUI).
prova Class.forome ("com.mysql.jdbc.Driver"); catch (ClassNotFoundException ex) // usa l'eccezione qui
È molto comune richiamare questo codice in un blocco statico della classe, quindi il programma fallisce immediatamente se non è possibile caricare il driver.
public class Sample static try Class.forome ("com.mysql.jdbc.Driver"); catch (ClassNotFoundException ex) System.err.println ("Impossibile caricare il driver MySQL");
Naturalmente, per essere in grado di trovare il driver, il programma deve essere richiamato con il driver JAR (scaricato ed estratto sopra) incluso nel percorso della classe come segue.
java -cp mysql-connector-java--bin.jar: ...
Connessione a MySQL da Java
Ora che abbiamo eliminato i dettagli del caricamento del driver MySQL da java, connettiamoci al database. Un modo per creare una connessione al database è utilizzare il DriverManager.
String jdbcUrl = ...; Connection con = DriverManager.getConnection (jdbcUrl);
E qual è il jdbcUrl? Indica i dettagli della connessione, incluso il server in cui si trova il database, il nome utente e così via. Ecco un URL di esempio per il nostro esempio.
String jdbcUrl = "jdbc: mysql: // localhost / sample? User = testuser & password = secrepwd";
Si noti che abbiamo incluso tutti i parametri necessari per la connessione, incluso il nome host (localhost), nome utente e password. (Includere la password come questa NON è una buona pratica, vedi sotto per le alternative.)
Usando questo jdbcUrl, ecco un programma completo per verificare la connettività.
public class Sample static try Class.forome ("com.mysql.jdbc.Driver"); catch (ClassNotFoundException ex) System.err.println ("Impossibile caricare il driver MySQL"); public public void main (String [] args) genera Exception String jdbcUrl = "jdbc: mysql: // localhost / sample? user = testuser & password = securepwd"; Connection con = DriverManager.getConnection (jdbcUrl); System.out.println ( "Connected!"); con.Close ();
Si noti che una connessione al database è una risorsa preziosa in un programma e deve essere chiusa correttamente come sopra. Il codice sopra, tuttavia, non chiude la connessione in caso di un'eccezione. Per chiudere la connessione su un'uscita normale o anormale, utilizzare il seguente modello:
try (Connection con = DriverManager.getConnection (jdbcUrl)) System.out.println ("Connesso!");
Come notato sopra, è una cattiva idea incorporare la password nell'URL JDBC. Per specificare direttamente nome utente e password, è possibile utilizzare la seguente opzione di connessione.
String jdbcUrl = "jdbc: mysql: // localhost / sample"; provare (Connection con = DriverManager.getConnection (jdbcUrl, "testuser", "securepwd"))
Interrogazione del database da Java
Ora che la connessione al database è stabilita, vediamo come eseguire una query, ad esempio interrogando la versione del database:
selezionare la versione ();
Una query viene eseguita in java come segue. UN dichiarazione oggetto viene creato e una query viene eseguita utilizzando il executeQuery () metodo che restituisce a ResultSet.
String queryString = "seleziona versione ()"; Dichiarazione stmt = con.createStatement (); ResultSet rset = stmt.executeQuery (queryString);
Stampa la versione dal ResultSet come segue. 1 si riferisce all'indice della colonna nei risultati, a partire da 1.
while (rset.next ()) System.out.println ("Versione:" + rset.getString (1));
Dopo aver elaborato i risultati, gli oggetti devono essere chiusi.
rset.close (); stmt.close ();
E questo copre tutto quello che c'è da connettere a MySQL da java ed eseguire una semplice query.
Hai usato JDBC con MySQL nei tuoi progetti? Quali problemi, se ce ne sono, hai avuto con i database e java? Per favore fateci sapere nei commenti qui sotto.
Scopri di più su: Java, SQL.