Précédent   Forum du club des développeurs et IT Pro > Java > Général Java > Java & Mobiles > Android
Android Forum d'entraide sur Android, la plateforme mobile de Google pour téléphones portables et Smartphones. Avant de poster -> FAQ Android
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 08/11/2009, 22h58   #1
clubist
Membre actif
 
Avatar de clubist
 
Étudiant
Inscription : février 2008
Messages : 210
Détails du profil
Informations personnelles :
Âge : 26

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2008
Messages : 210
Points : 167
Points : 167
Envoyer un message via MSN à clubist
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.
clubist est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2009, 23h24   #2
Viish
Rédacteur
 
Avatar de Viish
 
Homme Sylvain Berfini
Etudiant en alternance
Inscription : février 2009
Messages : 423
Détails du profil
Informations personnelles :
Nom : Homme Sylvain Berfini
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Etudiant en alternance
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2009
Messages : 423
Points : 1 476
Points : 1 476
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.
Viish est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2009, 23h34   #3
clubist
Membre actif
 
Avatar de clubist
 
Étudiant
Inscription : février 2008
Messages : 210
Détails du profil
Informations personnelles :
Âge : 26

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2008
Messages : 210
Points : 167
Points : 167
Envoyer un message via MSN à clubist
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.
clubist est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2009, 03h50   #4
Viish
Rédacteur
 
Avatar de Viish
 
Homme Sylvain Berfini
Etudiant en alternance
Inscription : février 2009
Messages : 423
Détails du profil
Informations personnelles :
Nom : Homme Sylvain Berfini
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Etudiant en alternance
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2009
Messages : 423
Points : 1 476
Points : 1 476
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.
Viish est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2009, 23h27   #5
clubist
Membre actif
 
Avatar de clubist
 
Étudiant
Inscription : février 2008
Messages : 210
Détails du profil
Informations personnelles :
Âge : 26

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2008
Messages : 210
Points : 167
Points : 167
Envoyer un message via MSN à clubist
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
clubist est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2009, 00h45   #6
Viish
Rédacteur
 
Avatar de Viish
 
Homme Sylvain Berfini
Etudiant en alternance
Inscription : février 2009
Messages : 423
Détails du profil
Informations personnelles :
Nom : Homme Sylvain Berfini
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Etudiant en alternance
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2009
Messages : 423
Points : 1 476
Points : 1 476
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(...);
Viish est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2009, 21h10   #7
clubist
Membre actif
 
Avatar de clubist
 
Étudiant
Inscription : février 2008
Messages : 210
Détails du profil
Informations personnelles :
Âge : 26

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2008
Messages : 210
Points : 167
Points : 167
Envoyer un message via MSN à clubist
Je pense que cette classe permet la connexion à une BD Sqlite seulement et non à MySQL.
clubist est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/11/2009, 01h31   #8
Viish
Rédacteur
 
Avatar de Viish
 
Homme Sylvain Berfini
Etudiant en alternance
Inscription : février 2009
Messages : 423
Détails du profil
Informations personnelles :
Nom : Homme Sylvain Berfini
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Etudiant en alternance
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2009
Messages : 423
Points : 1 476
Points : 1 476
Oui, en effet elle ne permet que la connexion en local sur la bd SQLite.
Viish est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2009, 00h40   #9
clubist
Membre actif
 
Avatar de clubist
 
Étudiant
Inscription : février 2008
Messages : 210
Détails du profil
Informations personnelles :
Âge : 26

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2008
Messages : 210
Points : 167
Points : 167
Envoyer un message via MSN à clubist
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
clubist est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2009, 11h35   #10
sinok
Modérateur
 
Avatar de sinok
 
Inscription : août 2004
Messages : 8 644
Détails du profil
Informations personnelles :
Âge : 33
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : août 2004
Messages : 8 644
Points : 12 452
Points : 12 452
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.
sinok est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2009, 18h33   #11
jahbromo
Inscrit
 
Inscription : février 2008
Messages : 650
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 650
Points : 677
Points : 677
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
jahbromo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2009, 18h39   #12
clubist
Membre actif
 
Avatar de clubist
 
Étudiant
Inscription : février 2008
Messages : 210
Détails du profil
Informations personnelles :
Âge : 26

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2008
Messages : 210
Points : 167
Points : 167
Envoyer un message via MSN à clubist
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 ?
clubist est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2009, 12h01   #13
1rageux
Invité régulier
 
Inscription : juin 2008
Messages : 31
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 31
Points : 8
Points : 8
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!
1rageux est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 01h26.


 
 
 
 
Partenaires

Hébergement Web