Nei miei ultimi esperimenti con Java, mi è capitato di dover interagire con database MySQL. Per la parte che riguarda il database, ho sempre usato MAMP, un ottimo programma che gestisce in una semplice interfaccia grafica, Apache, MySQL e PHP.

Per far comunicare Java ed il database MySQL c’è bisogno di un driver, in particolare ho usato JDBC. Un esempio di utilizzo del driver è il seguente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class DataBaseTest {
    public static void testDB () throws Exception   {
        // Carico il Driver
        Class.forName("com.mysql.jdbc.Driver");

        // Connetto al Database (URL DB, USER, PWD)
        Connection db = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root");

        // Creo uno Statement per l'invio della query
        Statement s = this.db.createStatement();

        // Invio la query e catturo i risultati
        ResultSet rs = s.executeQuery("SELECT nome FROM tabella WHERE nick = 'nerthase'");
        boolean o = rs.first();

        // In caso non siano stati trovati risultati, inserisco l'entry nel database
        if (!o) s.executeUpdate("INSERT INTO tabella (nome, nick) VALUES ('mario', 'nerthase')");
        s.close();
    }
}


Questo codice, implica che sia stato creato un database chiamato test con una tabella chiamata tabella costituita da almeno due campi chiamati nome e nick. Il particolare questo piccolo esempio di codice, verifica se nella tabella è presente una entry che verifica la condizione nick = ‘nerthase’, ed in caso questa non è presente, inserisce la entry completa corrispondente. Un esempio di tabella usata per il test potrebbe essere il seguente:

nome nick
silvia moonny
fabio noeffex
mario nerthase

Questa è la mia prima esperienza con MySQL e soprattutto per l’integrazione con Java. Questo metodo però funziona molto bene, senza alcun errore, almeno per il momento. Per consigli o chiarimenti non esitate a contattarmi.