Description
Ce tutoriel vous explique comment vous connecter à une base de données d'un site en ligne en Java.
Bien souvent, les connexions externes aux bases de données sont bloquées, et la méthode que nous allons voir permet de contourner cette restriction.
Cette méthode est donc particulièrement destinée aux base de données de site de FAI tels que Free, Alice, Orange etc...
Introduction
Nous allons donc nous connecter, dans notre exemple, à une base de données de type Free, mais il est important de garder à l'esprit que ça marche avec tous les types de base mysql en ligne.
Dans notre exemple, nous imaginons que nous sommes l'administrateur d'un site ayant les caractéristique suivantes :
- FAI : Free
- Nom du site : monSite.free.fr
- Serveur SQL : sql.free.fr
- Nom d'utilisateur (SQL et FTP) : userFree
- Mot de passe (SQL FTP) : mdpFree
Maintenant que tout cela est clair, nous allons :
1. Télécharger le driver DbwConnection
2. Uploader le fichier serveur sur la racine du site
3. Nous connecter à cette base de donnée
4. Executer et afficher le résultat d'une requête.
5. Récapitulatif du code
6. Conclusion
Télécharger le driver DbwConnection
Vous pouvez le trouver à cette adresse :
https://sourceforge.net/projects/dbwconnection
Cliquez sur "Download DbwConnection", puis sélectionnez la dernière version (la 0.9.2 actuellement).
Vous obtenez donc une archive Zip, qu'il vous faut décompresser.
Un nouveau dossier va se créer et contiendra au moins les fichiers suivants :
- Dbw.jar ---> Le driver servant à se connecter à la base.
- dbw.php ---> La partie serveur du programme.
Uploader le fichier serveur sur la racine du site
Vous l'aurez compris c'est facile, vous prenez le fichier dbw.php et vous l'uploader par exemple à la racine du serveur.
Dans notre exemple il se trouvera donc à cet emplacement :
http://monSite.free.fr/dbw.php
Nous connecter à cette base de données
Il va donc falloir créer un nouveau projet Java, et ajouter le fichier "Dbw.jar" au classpath, c'est à dire aux library de ce projet.
Dans le code, nous allons donc commencer par importer le package requis. Pour cela il faudra indiquer :
import dbwConnection.*;
Pour créer la connexion, il faut instancier l'objet
DbwConnection, avec les paramètres spécifiques à votre site :
DbwConnection conn = new DbwConnection(location, username, pwd, host, dataBase);
Ce qui donne dans notre cas :
DbwConnection conn = new DbwConnection("http://monSite.free.fr/dbw.php", "userFree", "mdpFree", "sql.free.fr", "monSite");
Exécuter et afficher le résultat d'une requête
La connexion est maintenant créée, vous pouvez exécuter des requêtes avec la méthode
conn.executeQuery(String query), ou encore la methode
conn.executeUpdate(String upadate).
Dans cet exemple, nous exécutons une requête, et nous affichons à l'écran les deux premières colonnes :
DbwConnection conn = new DbwConnection(location, username, pwd, host, dataBase);
ResultSet rs = conn.executeQuery("SELECT * FROM 'categories'");
while (rs.next()) {
System.out.print(rs.getString(1));
System.out.print(rs.getString(2));
}
Récapitulatif du code
Au final, notre code se compose comme cela :
// On importe le driver
import dbwConnection.*;
public class Main {
public static void main(String * args) {
// location = la ou se trove le fichier dbw.php sur votre serveur
String location = "http://monSite.free.fr/dbw.php";
// username = votre nom d'utilisateur pour vous connecter a votre base SQL
String username = "userFree";
// pwd = votre mot de passe pour vous connecter a votre base SQL
String pwd = "mdpFree";
// host = l'adresse de votre serveur SQL
String host = "sql.free.fr";
// dataBase = le nom de votre base de donnee SQL.
String dataBase = "monSite";
// impératif de mettre des try/catch, pour capturer les exceptions
try {
DbwConnection conn = new DbwConnection(location, username, pwd, host, dataBase);
ResultSet rs = conn.executeQuery("SELECT * FROM 'categories'");
while (rs.next()) {
System.out.print(rs.getString(1));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
Conclusion
Il est donc maintenant possible de se connecter, depuis un programme Java, à n'importe quel base mysql d'un site en ligne.
Pour toutes questions/critiques/suggestions, vous pouvez me contacter par mp, ou laisser un message sur sur tutoriel.