Ci è capitato più volte di sviluppare applicazioni web-based, collegate ad altre applicazioni web-based con le quali devono dialogare per lo scambio di dati ed informazioni. In Internet è oramai pieno di guide e articoli che spiegano, a volte chiaramente e a volte un pò meno, il funzionamento di semplici script PHP, ASP o .NET per aiutare chi è alle prime armi o per facilitare il compito degli sviluppatori che possono così contare su risorse già parzialmente scritte.

Ciò che più raramente si trova in Internet è una guida che spieghi come collegare un’applicazione che “gira” in locale con una web-base, e che quindi vive nel mondo Internet. E allora….ecco ciò che stavate cercando!

Supponiamo che, in locale, vi siate sviluppati una piccola applicazione Java che gestisce l’archivio dei film che vi siete comprati negli anni. Avete però la necessità di memorizzare i dati in un database che sia disponibile in rete, perchè volete che l’archivio sia visibile anche sul vostro sito. Come fare? Ovviamente duplicare il database remoto in locale non è una soluzione ottimale.

In poche parole, quello che vi interessa ottenere, è di far dialogare la vostra applicazione locale scritta in Java con, supponiamo, il vostro sito Joomla, e quindi scritto in PHP e basato su database MYSQL.

Supponendo che la vostra applicazione Java sia scritta correttamente, il pezzo di codice che ci interessa analizzare è il seguente:

……
try {
String driver = “com.mysql.jdbc.Driver”;
Class.forName(driver);
//stringa di connessione al database server
String url = “jdbc:mysql://ip_tuo_server:3306/”;

//esempio: connessione local server
//String url = “jdbc:mysql://”;
//Equivale a: “jdbc:mysql://127.0.0.1:3306/”

//Otteniamo una connessione con username e password
con = DriverManager.getConnection (url, “tuo_username”, “tua_password”);
System.out.println(”<Connessione riuscita>\n”);
con.setCatalog(”tuo_database”);
//Creiamo un oggetto Statement per poter interrogare il db
cmd = con.createStatement ();

//Query
String qry = “SELECT * FROM tua_tabella”;
res = cmd.executeQuery(qry);

//Stampiamone i risultati riga per riga
while (res.next()) {
//System.out.print(res.getString(”id”)+” “);
System.out.println(res.getString(”titolo_film”));
}
} catch {…}

……

I commenti presenti all’interno del codice dovrebbero già chiarire le istruzioni scritte in Java. Possiamo tuttavia aggiungere qualche riga di spiegazione:

  • String driver = “com.mysql.jdbc.Driver”;
    Class.forName(driver);

    Queste due righe di codice servono per stabilire il tipo di driver che intendiamo usare: in questo caso, abbiamo supposto che il database remoto sia un db MYSQL, e dunque dobbiamo utilizzare il driver MYSQL per connetterci al database remoto.
  • String url = “jdbc:mysql://ip_tuo_server:3306/”;

    Con questa riga di codice assegnamo alla variabile url la stringa di connessione: tutto ciò che dobbiamo fare è sostituire la dicitura ip_tuo_server con l’IP o il nome del server sul quale “gira” il database remoto. Se la connessione con il database server va a buon fine, verrà stampata la stringa “<Connessione riuscita>“;

  • con.setCatalog(”tuo_database”);

    Questa riga di codice ci permette di dichiarare il nome del database remoto che vogliamo interrogare e che ovviamente “gira” sull’IP dichiarato precedentemente; tutto ciò che dobbiamo fare è sostituire la dicitura tuo_database con il nome del database in questione.

  • String qry = “SELECT * FROM tua_tabella”;

    Nella variabile qry salviamo la query che interrogherà il database; supponendo che il databatabase remoto sia già popolato, è possibile utilizzare la query di esempio, sostituendo tua_tabella con il nome della tabella da cui ci interessa prendere i dati.

  • while (res.next())…

    Iteriamo sull’oggeto res, che possiamo vederlo come l’insieme degli elementi risultanti dall’interrogazione al database server; per ogni elemento, stampiamo il titolo ( System.out.println(res.getString(”titolo_film”)); ) supponendo che esista nella tabella interrogata il campo ‘titolo’.

Vota Articolo: