IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Problème de chargement du driver JDBC


Sujet :

Android

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2012
    Messages : 14
    Points : 10
    Points
    10
    Par défaut Problème de chargement du driver JDBC
    Bonjour,

    Dans le cadre d'un mini projet dans mon enseignement BTS, je dois créer une application permettant de gérer un suivi de colis sous android. J'ai donc une base de donnée sur un serveur, et je dois y accéder depuis mon application Android.
    Pour cela j'utilise un connecteur JDBC, que je charge comme l'indique tous les site internet. Sur mon application Android il m'est impossible de me connecter à ma BDD ... J'affiche à chaque étape de mon programme son état sous forme de Toast.maketext ... Mais je n’accède même pas à ma première ligne de code ... celle du chargement du Driver. Alors que j'ai bien joins le .jar a mon projet.
    J'ai alors développé la même application dans un projet java, de la même manière, et j'ai pu accéder a une BDD en localhost, ainsi qu'a distance sur un réseau. Le problème vient donc purement du Android ... Quelqu'un sait il d'ou pourrait provenir mon problème? Je pensais peux être un problème de version d'Eclipse ... ou de l'émulateur Android ...
    J'aimerais y arrivé avec un langage entièrement dédié a mon application, sans passer par une page PHP qui accéderait a ma BDD (L'application servirai de simple raccourci vers le site PHP dans ce cas la) Si quelqu'un a une idée ... je suis preneur ...

    Merci d'avance

  2. #2
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Regardes dans la section tutoriels...

    Il n'y a pas de support JDBC dans Android.
    De toute manière cela ne se fait pas pour des raisons de sécurité (un terminal mobile ne peut faire partie d'un périmètre de sécurité et est par définition considéré comme 'hacké', donc on ne peut pas y coller d'une manière ou d'une autre un login/password d'une base de données).

    sans passer par une page PHP qui accéderait a ma BDD
    Ben y a pas le choix...

    L'application servirai de simple raccourci vers le site PHP dans ce cas la
    Rien à voir.... PHP est une 'sorte' de serveur.... on est dans une architecture 3-tiers:
    Client - Serveur - Base de données.

    Le client peut être:
    * Une application android (l'UI est locale).
    * Un browser (l'UI est fournie par le serveur en HTML).

    Rien ne force à faire la partie 'browser'.

    Et puis le serveur peut être en Java (tomcat pure servlet ou jsp ?), PHP, asp.net, ...
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  3. #3
    Membre averti
    Homme Profil pro
    Freelance
    Inscrit en
    Février 2008
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 312
    Points : 390
    Points
    390
    Par défaut
    Salut!

    on n'accède jamais à une base de données distantes à partir d'un programme mobile (que ce soit du android, ios ou windows phone).

    Comme indiqué par nicroman la solution est:
    - des web services qui attaquent ta base de données et te renvoie les données que tu as besoin (un web service par fonctionnalité métier par exemple un de login, un de renvoie des données, un d'insertion de donnée etc). le serveur peut être du PHP, du J2E ce qui tu veut.
    - ton application adroid qui attaque ces web services (en synchronisant les données de ta bdd externe avec une bdd interne à ton application si tu en a le besoin)

    bon courage!

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 41
    Points : 49
    Points
    49
    Par défaut
    Bonjour,

    je me permets de réagir car sur le play store on trouve plusieurs appli qui permettent de se connecter à Mysql ou à d'autres bases de données sans pour autant avoir mis en place de web services. Comment font ces applications ?

    De plus on peut éventuellement considérer qu'un pc portable est mobile et dans ce cas cela ne pose pas de problème ?

    Avez-vous des précisions à m'apporter car je n'ai certainement pas votre expérience dans ce domaine et tout ceci voudrait-il dire qu'il faut réimplementer le protocole de communication Mysql (Socket, et..) si on ne souhaite pas utiliser de web services ?

  5. #5
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    je me permets de réagir car sur le play store on trouve plusieurs appli qui permettent de se connecter à Mysql ou à d'autres bases de données sans pour autant avoir mis en place de web services. Comment font ces applications ?
    Elle font mal

    Sérieusement... il suffit de dessiner sur une feuille de papier le périmètre de sécurité des données (la partie la plus importante d'une application)... La base de données doit être dans ce périmètre. Pour y accéder il faut donc faire partie de ce périmètre, soit de manière "déportée" (VPN), soit de manière "locale" (Application tournant dans le périmètre et offrant un accès sécurisé et maîtrisé depuis l'exterieur: un web-service quoi !)

    De plus on peut éventuellement considérer qu'un pc portable est mobile et dans ce cas cela ne pose pas de problème ?
    Si... exactement les mêmes. Le problème de la base de données non accessible de l'exterieur n'est pas nouveaux, et cela fonctionne de la sorte depuis plus de 15 ans (voir 20 ), cela n'a pas attendu les mobile.
    La différence avec les "mobiles" est la prolifération des "points d'accès internet mobile" et donc des possibilité d'accès, ainsi que des développeurs qui *doivent* passer par une telle architecture.

    qu'il faut réimplementer le protocole de communication Mysql (Socket, et..)
    Si c'est le but, bien sur cela ne vaut pas le coup... mais encore une fois, si c'est le but, rien ne m'empechera alors d'aller demander la liste des tables à Mysql et de faire un "delete xxxxxx" sur toutes les tables de manière particulièrement facile....

    Ceci dit, certains web-service mal programmés, permettent l'injection de SQL et du coup cela revient au même....
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 41
    Points : 49
    Points
    49
    Par défaut
    Merci beaucoup pour ces infos. Je me rend compte que ce sont des questions que je me pose à chaque fois que je met en place les projets des étudiants.

    Je m'explique :

    Plusieurs PC "client" doivent envoyer ou obtenir des infos d'une base de données :
    Dois-je les laisser faire en direct ou au contraire les faire dialoguer avec un "serveur maison" qui lui est en place localement à coté du SGBD ?
    D'après ce que tu me dis la deuxième option serait le meilleure pour les raisons évoquées ci-dessus et donc le serveur maison fait office de "web service"....
    Confirmes-tu cette réflexion ? Si oui j'adapterais mes futurs projets en ce sens.

    Je viens de faire les test sans JDBC mais avec JSON et effectivement ça fonctionne plutôt bien mais du coup je trouve ça un peu plus lourd à coder. Mais bon une fois bien pris en main, c'est comme tout, on s'en sort.

    Merci encore.

    A plus.

    Un prof qui s'acharne et apprend depuis longtemps sur plein de trucs et qui continue de se sentir con au fur et à mesure.....

  7. #7
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Comme dit précédemment tout dépend du périmètre de sécurité. Si tu juges tes PC client comme sûres , tu peux alors envisager une connexion directe au SGBD via un utilisateur restreint.

    Mais pour le mobile il ne peux pas être considéré comme safe , sans compter qu'il ne dispose pas des drivers nécessaires à la connexion.
    Donc forcément passage par une entité tiers qui généralement s'avère être un webservice.

    Après derrière webservice, il peux simplement y avoir une url du type http://monserveur/colis/get/12345 qui va te permettre de récupérer l'état d'un colis.
    Pas forcément besoin de se lancer dans un gros truc.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2012
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    Merci a vous, je me suis rabattu sur du JSON et cela fonctionne comme je veux.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème au chargement du driver postgresql
    Par goony dans le forum JDBC
    Réponses: 2
    Dernier message: 06/03/2010, 18h43
  2. chargement dynamique driver jdbc
    Par Alt157 dans le forum JDBC
    Réponses: 12
    Dernier message: 29/10/2009, 17h23
  3. Problème d'utilisation du driver JDBC Oracle
    Par sweeton dans le forum Websphere
    Réponses: 0
    Dernier message: 30/03/2009, 17h11
  4. Problème d'enregistrement du driver jdbc
    Par welcome_59 dans le forum JDBC
    Réponses: 2
    Dernier message: 01/04/2007, 20h04
  5. [debutant] Problème requete SQL et driver JDBC
    Par desquesa dans le forum JDBC
    Réponses: 2
    Dernier message: 29/05/2006, 13h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo