Come connettersi a un database MySQL con Java

Come connettersi a un database MySQL con Java

Java fornisce JDBC (connettività del database Java) come parte di Java SDK (Software Development Kit). Usando questo FUOCO , è molto semplice connettersi a un database relazionale ed eseguire operazioni comuni come query, inserimento, aggiornamento ed eliminazione di record.





Sebbene l'API JDBC di base sia 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.





come aprire file psd senza photoshop

In questo articolo, esaminiamo i dettagli della connessione a un database MySQL e come eseguire alcune query con esso.





Il driver del database MySQL

Come spiegato sopra, per potersi connettere a un database MySQL, è necessario il driver JDBC per MySQL. Questo è chiamato il driver Connector/J e può essere scaricato da il 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 un luogo adatto. Questo file è necessario per eseguire qualsiasi codice che utilizza il driver JDBC MySQL.



Creazione di un database di esempio

Supponendo che tu abbia scaricato il database MySQL e impostalo correttamente dove hai accesso ad esso, creiamo un database di esempio in modo che possiamo usarlo per la connessione e l'esecuzione di query.

Connettiti al database utilizzando un client di tua scelta ed esegui le seguenti istruzioni per creare un database di esempio.





create database sample;

Abbiamo anche bisogno di un nome utente e una password per poterci connettere al database (a meno che tu non voglia connetterti come amministratore, che generalmente è una cattiva idea).

Quanto segue crea un utente denominato testuser chi si connetterà al database MySQL dalla stessa macchina su cui è in esecuzione (indicato da localhost ), utilizzando la password securepwd .





create user 'testuser'@'localhost' identified by 'securepwd';

Se ti stai connettendo a un database in esecuzione su un'altra macchina (denominata remoto ), è necessario utilizzare quanto segue ( remoto può essere un nome host o un indirizzo IP):

create user 'testuser'@'remotemc' identified by 'securepwd';

Ora che il nome utente e la password sono stati creati, dobbiamo concedere l'accesso al database di esempio creato in precedenza.

grant all on sample.* to 'testuser'@'localhost';

Oppure, se il database è remoto:

grant all on sample.* to 'testuser'@'remotemc';

Ora dovresti verificare di poterlo fare connettersi al database come l'utente appena creato con la stessa password. Puoi anche eseguire i seguenti comandi dopo la connessione, per assicurarti che le autorizzazioni siano tutte corrette.

create table joe(id int primary key auto_increment, name varchar(25));
drop table joe;

Imposta il percorso di classe Java

Entriamo ora nei dettagli su come connettersi a MySQL da Java. Il primo passo è caricare il driver del database. Questo viene fatto invocando quanto segue in una posizione adatta.

il mio tappetino per il mouse non funziona
Class.forName('com.mysql.jdbc.Driver');

Il codice potrebbe generare un'eccezione, quindi puoi intercettarla se intendi gestirla (come la formattazione del messaggio di errore per una GUI).

try {
Class.forName('com.mysql.jdbc.Driver');
} catch(ClassNotFoundException ex) {
// use the exception here
}

È molto comune invocare questo codice in un blocco statico nella classe, quindi il programma fallisce immediatamente se il driver non può essere caricato.

public class Sample
{
static {
try {
Class.forName('com.mysql.jdbc.Driver');
} catch(ClassNotFoundException ex) {
System.err.println('Unable to load MySQL Driver');
}
}
}

Ovviamente, per poter trovare il driver, il programma deve essere invocato con il driver JAR (scaricato ed estratto sopra) incluso nel class path come segue.

java -cp mysql-connector-java--bin.jar:...

Connessione a MySQL da Java

Ora che abbiamo chiarito i dettagli del caricamento del driver MySQL da java, dobbiamo connetterci al database. Un modo per creare una connessione al databaseè usare 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, nome utente e così via. Ecco un URL di esempio per il nostro esempio.

String jdbcUrl = 'jdbc:mysql://localhost/sample?user=testuser&password=secrepwd';

Nota che abbiamo incluso tutti i parametri richiesti per la connessione, incluso il nome host ( localhost ), nome utente e password. (Includere la password in questo modo NON è una buona pratica, vedere sotto per le alternative.)

Usando questo jdbcUrl , ecco un programma completo per verificare la connettività.

public class Sample
{
static {
try {
Class.forName('com.mysql.jdbc.Driver');
} catch(ClassNotFoundException ex) {
System.err.println('Unable to load MySQL Driver');
}
}
static public void main(String[] args) throws Exception
{
String jdbcUrl = 'jdbc:mysql://localhost/sample?user=testuser&password=securepwd';
Connection con = DriverManager.getConnection(jdbcUrl);
System.out.println('Connected!');
con.close();
}
}

Nota che una connessione al database è una risorsa preziosa in un programma e deve essere chiusa correttamente come sopra. Il codice precedente, tuttavia, non chiude la connessione in caso di eccezione. Per chiudere la connessione su un'uscita normale o anomala, utilizzare il seguente schema:

try(Connection con = DriverManager.getConnection(jdbcUrl)) {
System.out.println('Connected!');
}

Come notato sopra, è una cattiva idea incorporare la password nell'URL JDBC. Per specificare direttamente il nome utente e la password, puoi invece utilizzare la seguente opzione di connessione.

come usare una stampante 3d
String jdbcUrl = 'jdbc:mysql://localhost/sample';
try(Connection con = DriverManager.getConnection(jdbcUrl, 'testuser', 'securepwd')) {
}

Interrogazione del database da Java

Ora che è stata stabilita la connessione al database, vediamo come eseguire una query, ad esempio interrogare la versione del database:

select version();

Una query viene eseguita in java come segue. UN Dichiarazione l'oggetto viene creato e viene eseguita una query utilizzando il eseguiQuery() metodo che restituisce a RisultatoSet .

String queryString = 'select version()';
Statement stmt = con.createStatement();
ResultSet rset = stmt.executeQuery(queryString);

Stampa la versione dal RisultatoSet come segue. 1 si riferisce all'indice della colonna nei risultati, a partire da 1.

while ( rset.next()) {
System.out.println('Version: ' + rset.getString(1));
}

Dopo aver elaborato i risultati, gli oggetti devono essere chiusi.

rset.close();
stmt.close();

E questo copre tutto ciò che serve per connettersi a MySQL da Java ed eseguire una semplice query.

Dai un'occhiata anche al nostro Cheat sheet dei comandi SQL .

Condividere Condividere Tweet E-mail Va bene installare Windows 11 su un PC incompatibile?

Ora puoi installare Windows 11 sui vecchi PC con il file ISO ufficiale... ma è una buona idea farlo?

Leggi Avanti
Argomenti correlati
  • Programmazione
  • Giava
  • SQL
Circa l'autore Jay Sridhar(17 Articoli Pubblicati) Altro da Jay Sridhar

Iscriviti alla nostra Newsletter

Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!

Clicca qui per iscriverti