Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 13 sur 13
  1. #1
    Membre confirmé Avatar de clubist
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2008
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : février 2008
    Messages : 215
    Points : 235
    Points
    235

    Par défaut connexion entre une Base de données et Application sur Android

    Bonjour,

    Je suis débutant en JAVA ME et je vais développer une simple application qui manipule une Base de données en Local (MySQL 5).

    Donc Est ce que la méthode de connexion sera la même que dans le cas de JAVA SE (JDBC par exemple) ou on aura besoin des autres api ?
    Et merci d'avance.

  2. #2
    Rédacteur
    Avatar de Viish
    Homme Profil pro Sylvain Berfini
    Ingénieur développement logiciels
    Inscrit en
    février 2009
    Messages
    427
    Détails du profil
    Informations personnelles :
    Nom : Homme Sylvain Berfini
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : février 2009
    Messages : 427
    Points : 1 306
    Points
    1 306

    Par défaut

    Je pense pas que tu puisses utiliser une bdd Mysql en local sur Android.
    En revanche tu en as une toute prête en SQLite qui fonctionne très bien.

    Pour accéder à cette dernière, pas besoin de JDBC, il te faut juste une classe héritant de SQLiteConnector il me semble.

  3. #3
    Membre confirmé Avatar de clubist
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2008
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : février 2008
    Messages : 215
    Points : 235
    Points
    235

    Par défaut

    la BDD Mysql est installée sur ma machine XP et non pas sur le même Téléphone Android(dans ce cas j'utilise le plugin d'éclipse pour exécuter ma application).

    car dans un cas réel l'application va connecter sur une BDD installée dans un serveur séparé du téléphone.

  4. #4
    Rédacteur
    Avatar de Viish
    Homme Profil pro Sylvain Berfini
    Ingénieur développement logiciels
    Inscrit en
    février 2009
    Messages
    427
    Détails du profil
    Informations personnelles :
    Nom : Homme Sylvain Berfini
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : février 2009
    Messages : 427
    Points : 1 306
    Points
    1 306

    Par défaut

    Je suis pas sur mais il me semble que ce n'est pas possible (ou en tout cas qu'en 1.5 ce n'est pas possible), mais je peux me tromper.
    Peut être avec l'arrivée de 1.6 ou de 2.0 cela est-il possible.

  5. #5
    Membre confirmé Avatar de clubist
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2008
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : février 2008
    Messages : 215
    Points : 235
    Points
    235

    Par défaut Javax.sql

    Puisque la configuration CLDC ne supporte pas JDBC on a fallu travailler avec package javax.sql qui est supporté par ANDROID SDK mais j'ai pas pu connaitre comment créer une connexion à une BD avec ce package

  6. #6
    Rédacteur
    Avatar de Viish
    Homme Profil pro Sylvain Berfini
    Ingénieur développement logiciels
    Inscrit en
    février 2009
    Messages
    427
    Détails du profil
    Informations personnelles :
    Nom : Homme Sylvain Berfini
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : février 2009
    Messages : 427
    Points : 1 306
    Points
    1 306

    Par défaut

    Voici la classe que j'utilise dans toutes mes applis :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    class SQLiteConnector extends SQLiteOpenHelper 
    {
    	public SQLiteConnector(Context context, String databaseName, int databaseVersion)
    	{
    		super(context, databaseName, null, databaseVersion);
    	}
     
    	public void onCreate(SQLiteDatabase db) 
    	{
    		db.execSQL("CREATE TABLE nom_de_la_table (paramettres_de_la_table)");
    	}
     
    	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
    	{
     
    	}
    }
    Et je l'utilise comme ceci :
    Code :
    1
    2
    3
     
    connector = new SQLiteConnector(...);
    stream = connector.getWritableDatabase();
    Ensuite tu peux utiliser de manière très intuitive toutes les fonctions des base de données :
    Code :
    1
    2
    3
    4
    5
    6
     
    Cursor c = stream.query(...);
    stream.execSQL(...);
    stream.insert(...);
    stream.insertOrThrow(...);
    stream.delete(...);

  7. #7
    Membre confirmé Avatar de clubist
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2008
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : février 2008
    Messages : 215
    Points : 235
    Points
    235

    Par défaut

    Je pense que cette classe permet la connexion à une BD Sqlite seulement et non à MySQL.

  8. #8
    Rédacteur
    Avatar de Viish
    Homme Profil pro Sylvain Berfini
    Ingénieur développement logiciels
    Inscrit en
    février 2009
    Messages
    427
    Détails du profil
    Informations personnelles :
    Nom : Homme Sylvain Berfini
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : février 2009
    Messages : 427
    Points : 1 306
    Points
    1 306

    Par défaut

    Oui, en effet elle ne permet que la connexion en local sur la bd SQLite.

  9. #9
    Membre confirmé Avatar de clubist
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2008
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : février 2008
    Messages : 215
    Points : 235
    Points
    235

    Par défaut

    bon il est peut être inutile de connecter l'application directement à la BD mais elle va connecter à un serveur d'application qui va diriger les requêtes vers la BD MySQL.

    est ce que vous êtes d'accord avec moi qu'on doit dans ce cas créer une application web 3-tiers?

    Et merci d'avance

  10. #10
    Modérateur
    Avatar de sinok
    Profil pro
    Inscrit en
    août 2004
    Messages
    8 758
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : août 2004
    Messages : 8 758
    Points : 11 829
    Points
    11 829

    Par défaut

    Bah de toute façon il n'y a que comme ça que tu pourras le faire.

    Et de toute façon accéder directement à un SGBD depuis l'extérieur est une énorme insanité niveau sécurité en soit. De plus il aurait fallu gérer un grand nombre de logins, d'autorisations & cie au niveau de la base de données.

    Par contre Android doit avoir moyen de se connecter à des Web Services. Donc il suffit de définir ces WS au niveau du serveur d'appli auquel Android se connecte et roule ma poule .

    cf http://android.amberfog.com/?p=45
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  11. #11
    Inscrit

    Inscrit en
    février 2008
    Messages
    659
    Détails du profil
    Informations forums :
    Inscription : février 2008
    Messages : 659
    Points : 691
    Points
    691

    Par défaut

    Citation Envoyé par clubist Voir le message
    Bonjour,

    Je suis débutant en JAVA ME et je vais développer une simple application qui manipule une Base de données en Local (MySQL 5).

    Donc Est ce que la méthode de connexion sera la même que dans le cas de JAVA SE (JDBC par exemple) ou on aura besoin des autres api ?
    Et merci d'avance.

    Je ne sais pas si tu t'es trompé par Java ME ou Android car nous somme sur le forum android et je voie la question sur java me

    Dans tous les cas oui tu peux pas manipuler une basse de donnée depuis java me. Java me ne supporte pas cet api, par ailleurs tu peux faire une servlet comme interface entre base de donné et ton application midlet

  12. #12
    Membre confirmé Avatar de clubist
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2008
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : février 2008
    Messages : 215
    Points : 235
    Points
    235

    Par défaut

    ah oui je sais qu'il fallait créer une servlet comme interface mais est ce que c'est possible avec Activity car je m'intéresse à une application Android ?

  13. #13
    Invité régulier
    Inscrit en
    juin 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : juin 2008
    Messages : 31
    Points : 8
    Points
    8

    Par défaut

    Salut a tous!

    Hum c'est bizarre mais dans le reference guide d'android java.sql est bien présent! Ça veut dire qu'il est supporté non?

    http://developer.android.com/referen...e-summary.html

    Mais si on ne peut pas passer par JDBC comment fait on pour récupérer les données renvoyés par le serveur? Obligé d'utiliser un webService?

    Merci!

    Edit: Apparement c'est vraiment pas possible de communiquer directement avec la base de donnée. Une autre solution serait d'utiliser un script coté serveur qui générait un fichier XML.

    http://www.pointgphone.com/forum/post11785#p11785

    Si vous avez d'autres informations je suis preneur!

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •