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 :

Accès base de données avec JDBC


Sujet :

Android

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Accès base de données avec JDBC
    Bonjour à tous !

    Voilà, je suis étudiant en DUT Informatique et durant mon stage de fin d'année je dois développer une application android pour l'entreprise. Il faut que mon application puisse récupérer des informations dans une base de données hébergées sur un serveur interne à l'entreprise et j'ai donc voulu passer par JDBC. J'ai vu que cela pouvait poser des problèmes de sécurité, que ce n'était pas bien d'attaquer une base de données en direct en passant par internet. Cependant, vu que l'application ne sera utilisé que sur un réseau interne, le souci de sécurité devrait moins se poser.
    J'ai d'abord essayer dans une application JAVA d'utiliser JDBC afin de récupérer les données, et tout fonctionne parfaitement. Hors des que je passe par la tablette Android, j'ai une classNotFoundException au moment du chargement du driver.
    Voici le message du logCat:
    Could not find class 'javax.naming.StringRefAddr', referenced from method com.mysql.jdbc.ConnectionPropertiesImpl$ConnectionProperty.storeTo

    Je pense pourtant avoir bien inclus mon driver dans le projet mais j'ai quand même cette erreur.
    Je travaille sous Android 4.2 et la version 5.1.18 du mysql connector.

    Je vous remercie par avance pour toute l'aide que vous pourrez m'apporter !

  2. #2
    Membre expérimenté Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Points : 1 622
    Points
    1 622
    Par défaut
    Salut,

    Je suis pas dev mobile donc je peux me tromper mais à mon avis ton driver n'est pas compatible avec Android.

    Si on regarde l'erreur, on voit qu'il cherche la classe StringRefAddr dans le package javax.naming. Or si on regarde la liste des packages dispo sous Android, on voit qu'il n'existe pas.

    Dans tous les cas, comme tu l'as toi même mentionné, c'est pas bien de vouloir exposer une BDD directement sur un réseau

    Cdt.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Nico02 Voir le message
    Salut,

    Je suis pas dev mobile donc je peux me tromper mais à mon avis ton driver n'est pas compatible avec Android.

    Si on regarde l'erreur, on voit qu'il cherche la classe StringRefAddr dans le package javax.naming. Or si on regarde la liste des packages dispo sous Android, on voit qu'il n'existe pas.

    Dans tous les cas, comme tu l'as toi même mentionné, c'est pas bien de vouloir exposer une BDD directement sur un réseau

    Cdt.
    Oui c'est pas bien mais normalement ça ne risque quasiment rien car c'est un réseau interne à l'entreprise, qui n'est pas ouvert et est caché en plus. Donc je voulais quand même essayer...
    Et effectivement le package n'existe pas sous android... mais comment ça se fait alors que je trouve des tutoriaux qui proposent cette solution ? et sur des forums, y avait quelqu'un qui était arrivé à gérer sa base avec JDBC...
    Merci pour ta réponse en tout cas

    Si quelqu'un d'autre a une idée je suis preneur tout de même ! sinon bha j'essaierai autre chose...

  4. #4
    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
    Il est possible, dans de rare cas, que JDBC soit disponible pour certaines bases de données. Mais dans 90% des cas ce ne sera pas le cas, et JDBC n'est pas utilisable.

    Et dans 100% des cas l'utilisation de JDBC est une erreur principalement pour la raisons suivante:

    JDBC a été conçu pour fonctionner dans un environnement réseau rapide, et toujours disponible. Il y a pas ou peu de gestion dans JDBC des "chutes" de qualité réseau, et une "connexion" JDBC à une base de donnée est l'équivalent d'un socket ouvert. Hors un appareil mobile (même en wifi dans un réseau privé) n'est ni dans un environnement rapide, et jamais dans un réseau toujours disponible. L'utilisation de JDBC n'est donc de toute manière pas adaptée.

    La meilleure solution est donc de passer par un web-service qui lui tournera de manière "toujours connectée à la DB", et sera capable de mutualiser les demandes d'accès, ainsi que de sécuriser le processus (tous les utilisateurs ne devraient pas pouvoir faire "truncate table XXXXX" par exemple).
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par nicroman Voir le message
    Il est possible, dans de rare cas, que JDBC soit disponible pour certaines bases de données. Mais dans 90% des cas ce ne sera pas le cas, et JDBC n'est pas utilisable.

    Et dans 100% des cas l'utilisation de JDBC est une erreur principalement pour la raisons suivante:

    JDBC a été conçu pour fonctionner dans un environnement réseau rapide, et toujours disponible. Il y a pas ou peu de gestion dans JDBC des "chutes" de qualité réseau, et une "connexion" JDBC à une base de donnée est l'équivalent d'un socket ouvert. Hors un appareil mobile (même en wifi dans un réseau privé) n'est ni dans un environnement rapide, et jamais dans un réseau toujours disponible. L'utilisation de JDBC n'est donc de toute manière pas adaptée.

    La meilleure solution est donc de passer par un web-service qui lui tournera de manière "toujours connectée à la DB", et sera capable de mutualiser les demandes d'accès, ainsi que de sécuriser le processus (tous les utilisateurs ne devraient pas pouvoir faire "truncate table XXXXX" par exemple).

    D'accord je pensais que JDBC était plus accessible que ça... De toute façon j'ai arrêté d'essayer de le faire marcher vu que ça ne fonctionnait pas et je perdais beaucoup trop de temps dessus. J'ai donc fais comme tout le monde le conseille, j'ai commencé à programmer un web-service.

    Merci à tous !!

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

Discussions similaires

  1. Accès base de données avec un Web Service
    Par hammia14 dans le forum JDBC
    Réponses: 1
    Dernier message: 23/12/2013, 13h53
  2. Réponses: 7
    Dernier message: 14/04/2010, 15h45
  3. Réponses: 0
    Dernier message: 14/04/2010, 12h35
  4. Démarrer/arrêter une base de données avec JDBC
    Par fadjerx dans le forum JDBC
    Réponses: 5
    Dernier message: 27/11/2008, 11h20

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