01/02/2018
TP Android n°10 : base de données distante MySQL (2)
playlist : TP Android (programmation mobile)
catégories :
Android
SQL
description :
IMPORTANT n°1 : nouvelle classe AccesHTTP à télécharger (voir plus bas)
IMPORTANT n°2 : si vous n'arrivez pas à accéder à la base de données :
Il existe maintenant 2 formats de BDD : MySQL et MariaDB, tous les 2 accessibles au même endroit et fonctionnant de façon similaire, mais sur des ports différents.
Dans le fichier fonctions.php que vous avez créé, je vous conseille de modifier la variable de connexion par :
$conn = new PDO("mysql:host=$serveur;dbname=$bd;port=3308", $login, $mdp);
En fait, si vous avez créer la base sous MariaDB (actuellement par défaut) le port est celui par défaut : 3306. Si vous avez sélectionné MySQL, normalement le nouveau port est 3308. Ca vaut d'ailleurs le coup aussi de tester les 2...
Prérequis : avoir des connaissance en programation objet (et avoir vu les vidéos précédentes de la construction de l'application Android)
But : sous Android Studio, faire les bons paramétrages et créer les classes outils nécessaires pour l'accès au serveur distant via Internet et le protocole HTTP.*
ERRATUM : à 22:09 je dis par erreur que onPostExecute est appelé par le execute de la classe mère. C'est doInBackground qui est appelé par execute de la classe mère. onPostExecute est une méthode événementielle appelée lorsque le serveur renvoie une réponse.
IMPORTANT :
Dans la classe AccesHTTP, j'utilise des classes qui sont obsolètes et qui peuvent maintenant poser problème. Je ferai une vidéo pour montrer le principe d'une nouvelle classe AccesHTTP, mais en attendant, je vous donne son code que vous pouvez récupérer ici :
http://bit.ly/EmdsNewAccesHTTP
Pensez à changer le nom du package (1e ligne).
La logique est proche de la classe montrée dans la vidéo et normalement vous n'avez rien à changer dans le reste du programme excepté que vous n'avez plus besoin de mettre la ligne 'useLibrary "org.apache.http.legacy" ' dans build.gradle, comme montré en tout début de vidéo.