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

Composants graphiques Android Discussion :

Apprendre à utiliser la base de donnée SQLite, un tutoriel de Mathias Seguy


Sujet :

Composants graphiques Android

  1. #1
    Membre expert
    Avatar de MathiasSeguy
    Homme Profil pro
    Fondateur Android2EE - Formation Expertise Android
    Inscrit en
    Avril 2011
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fondateur Android2EE - Formation Expertise Android
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 185
    Points : 3 692
    Points
    3 692
    Billets dans le blog
    6
    Par défaut Apprendre à utiliser la base de donnée SQLite, un tutoriel de Mathias Seguy
    Bonjour,

    Je vous propose un tutoriel pour apprendre à utiliser la base de données SQLite avec Android

    N'hésitez pas à laisser des commentaires à partir de cette discussion.

    L'URL du tutoriel : http://mathias-seguy.developpez.com/...onnees-sqlite/

    Lire aussi les Cours et tutoriels pour apprendre Android et les Cours et tutoriels pour apprendre Java

    Bonne lecture

  2. #2
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 17
    Points : 14
    Points
    14
    Par défaut bdd SQLite
    Bonjour,
    Merci pour le tuto
    je m'y connais pas du tout en bdd alors je désirais vous demander, est ce que je peux utiliser SQLite dans mon projet, je m'explique:
    je dois créer un site web, y intégrer un lien vers une application mobile (androïde) à télécharger. Le contenu du site et de l'application sera le même, avec une option de géolocalisation pour l'appli (c'est à dire que l'application fonctionnera au wifi) . Est il possible avec SQLite de créer une et une unique base de données pour les deux (site et appli) ? ça sera une bdd globale et sil ya mise à jour, le contenu du site changera et il sera demandé à l'utilisateur de l'appli de la mettre à jour..
    Merci
    Cordialement,
    Nina

  3. #3
    Membre expert
    Avatar de MathiasSeguy
    Homme Profil pro
    Fondateur Android2EE - Formation Expertise Android
    Inscrit en
    Avril 2011
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fondateur Android2EE - Formation Expertise Android
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 185
    Points : 3 692
    Points
    3 692
    Billets dans le blog
    6
    Par défaut
    Bonjour Niniche,
    Merci, heureux que cela t'es plu.
    Alors pour répondre à ta question.
    Oui tu peux, mais ce n'est pas la meilleure stratégie. En effet, cela suppose qu'à chaque modification de ta BD, tu reconstruises ton application ce qui est un peu lourd. Ensuite, tu ne partages pas à proprement parler ta base serveur et ta base Android. Il faut que tu fasses un extract sous forme de fichier de ta base serveur et que tu injectes ce script Sqlite dans ta base Android. Pour cela, dans ta méthode onCreate ou dans ta méthode onUpgrade de ta classe SqliteDBOpenHelper, tu lis ce script et tu rejoues les instructions (avec la méthode executeSql (je te dis ça de tête)), ce qui est un peu lourd, pas beaucoup mais un peu.

    La seconde stratégie, poussive aussi, est de mettre en place le DesignPattern de SyncAdapter (je n'en ai pas parlé mais il y a de la doc sur le net pour t'aider). Ce n'est pas, là non plus, évident, mais cela te permet de synchroniser ta base de données locale dès qu'un truc change sur le serveur (et vis-versa). Du coup, tes utilisateurs n'ont rien à faire et toi non plus quand tu fais un update de ta base serveur. Ca marche dans les deux sens.
    Pour plus d'informations:
    http://developer.android.com/trainin...ers/index.html
    http://developer.android.com/trainin...c-adapter.html
    et moi, j'ai appris à le faire en lisant ce post qui est en anglais mais assez clair:
    http://blog.udinic.com/2013/07/24/wr...d-sync-adapter

    Dernière stratégie qui est je pense la plus facile pour toi et la plus agréable pour l'utilisateur, utilises FireBase ou CouchBase comme base de données. Ce sont des librairies tierces qui te permettent de mettre en place un BD qui sera syncyhronisée de manière transparente entre ta BD locale et ta BD serveur. Comme le SyncAdapter tu vas me dire. Oui exactement, en juste, mille fois plus facile.
    Je commence par CouchBase parce que j'ai rencontré l'un de ses développeurs à la DroidCon London (Laurent Doguin, son twitter @ldoguin) et le truc important c'est que la base de données est en noSql. Voilà, je pose ça là, moi je suis fan
    http://www.couchbase.com/

    Le second est FireBase, qui appartient à Google et est donc ton ami à toi le développeur Android. Là, c'est juste magique, bien fait, facile à prendre en main avec de la doc un peu partout.
    https://www.firebase.com/docs/android/
    https://www.firebase.com/tutorial/#gettingstarted
    http://www.raywenderlich.com/109706/...etting-started

    Dans la cadre de c'est quoi le mieux, je préconise FireBase pour les développeurs Android qui souhaite avoir une BD en mode real time synchronisée.
    Ainsi pour répondre à ta super question, FireBase est la solution qu'il te faut pour ton problème. Ok, il va te falloir monter en compétence dessus
    Bonne soirée à toi.

    ps: Je suis pas expert FireBase, je vais pas pouvoir répondre à tes futures super questions

  4. #4
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 17
    Points : 14
    Points
    14
    Par défaut Merciiiiiiiiiiiiiiiiiiiiiiiiiiiii
    Merci beaucoup Mathias Seguy pour vos recommandations! Je vais jeter un coup d’œil aux liens pour mieux comprendre et bien choisir

  5. #5
    Membre confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2014
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Août 2014
    Messages : 262
    Points : 634
    Points
    634
    Par défaut
    Merci Mathias,

    C'est vraiment un tutoriel complet et surtout avec des exemples concrétisants (surtout çà !).

    En ce qui concerne l'ouverture et la fermeture de la base de données, je ne sais pas si vous avez vu une de mes discussions,

    j'aimerai savoir lequel des deux méthodes est adaptée et optimisée :

    -Ouvrir une seule fois la base de données dans onCreate() et la refermer dans onResume(), onPause();
    ou
    -Ouvrir la BDD avant une requête et la refermer aussitôt après la requête ?

    __merci
    Aujourd'hui apprenant, demain appreneur.
    N'accuse pas le puits d'être trop profond,
    c'est peut-être ta corde qui est trop courte

  6. #6
    Membre expert
    Avatar de MathiasSeguy
    Homme Profil pro
    Fondateur Android2EE - Formation Expertise Android
    Inscrit en
    Avril 2011
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fondateur Android2EE - Formation Expertise Android
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 185
    Points : 3 692
    Points
    3 692
    Billets dans le blog
    6
    Par défaut
    Merci
    Concernant ta question lankoande, moi je préconise que tu créés une classe MaDao et que tu centralises l'accès à ta base de données dans cette classe.
    Ainsi dans cette classe, chaque méthode est responsable de l'ouverture et de la fermeture de la base:
    Pour un insert, tu ouvres la base, tu fais l'insert, tu refermes la base. Pareil pour les updates et les deletes.
    Pour les query, tu ouvres la base, tu fais ton query, tu parcours ton curseur et tu reconstruis tes données en tant qu'objet Java, tu fermes le curseur, tu fermes la base tu renvoies tes donnes java.
    Tous les accès à la base de données sont centralisés dans cette classe (tu peux en avoir plusieurs,une par table ou par type d'objet métier HumanDao, FamilyDao,AdressDao...).
    L'avantage, tout est bien fermé pas de fuite mémoire, indépendant du cycle de vie des activités, testable unitairement, centralisé (si ça chie y'a que là qu'il faut regarder).
    Bref, c'est ça que je fais, que je préconise (ou que j'impose à mes équipes quand j'ai des équipes ce qui est super rare dernièrement )

  7. #7
    Membre confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2014
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Août 2014
    Messages : 262
    Points : 634
    Points
    634
    Par défaut
    OK,

    merci pour les idées. C'est ce que j'essaie de faire pour la plupart de mes projets, mais

    je rencontre souvent des soucis parce que j'utilise directement la classe Cursor avec un CursorAdapter

    pour afficher mes données, ce qui fais que je n'arrive pas à fermer la BDD aussitôt après ouverture.

    Pour ce cas, que préconisez-vous ? Ou vous utilisez tout le temps un adapter personnalisée (ArrayAdapter<class>) ?

    __salut !
    Aujourd'hui apprenant, demain appreneur.
    N'accuse pas le puits d'être trop profond,
    c'est peut-être ta corde qui est trop courte

  8. #8
    Membre expert
    Avatar de MathiasSeguy
    Homme Profil pro
    Fondateur Android2EE - Formation Expertise Android
    Inscrit en
    Avril 2011
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fondateur Android2EE - Formation Expertise Android
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 185
    Points : 3 692
    Points
    3 692
    Billets dans le blog
    6
    Par défaut
    J'évite les CursorAdapter, c'est pour moi un bad design pattern... un peu comme les asynctask dans les activités...
    Je mets dans la Dao et j'en démord pas, jamais.

  9. #9
    Membre confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2014
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Août 2014
    Messages : 262
    Points : 634
    Points
    634
    Par défaut
    OK,
    merci bien, je prend note pour mes prochaines applis.
    Aujourd'hui apprenant, demain appreneur.
    N'accuse pas le puits d'être trop profond,
    c'est peut-être ta corde qui est trop courte

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2015
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2015
    Messages : 39
    Points : 29
    Points
    29
    Par défaut myData.db
    Bonjour

    Comment et où peut-on récupérer le fichier myData.db ?
    Peut-on manipuler cette DB en externe, sur un PC avec ACCESS par exemple ?

    Merci

  11. #11
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Merci pour ce tuto, j'aurais une question concernant l'insertion et la lecture de données, je souhaiterais insérer les données à partir d'un formulaire sauf que je ne trouve pas comment faire, je suppose qu'il faut modifier ce morceau de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    private long insertRecord(ContentValues contentValues) {
    	// Assign the values for each column.
    	contentValues.put(Constants.KEY_COL_NAME, "name");
    	contentValues.put(Constants.KEY_COL_FIRSTNAME, "firstName");
    	contentValues.put(Constants.KEY_COL_EYES_COLOR, "green");
    	contentValues.put(Constants.KEY_COL_HAIR_COLOR, "blond");
    	contentValues.put(Constants.KEY_COL_AGE, 6);
     
    	// Insert the line in the database
    	long rowId = db.insert(Constants.MY_TABLE, null, contentValues);
     
    	// Test to see if the insertion was ok
    	if (rowId == -1) {
    	    Toast.makeText(this, "Error when creating an human",
    		    Toast.LENGTH_LONG).show();
    	} else {
    	    Toast.makeText(this, "Human created and stored in database",
    		    Toast.LENGTH_LONG).show();
    	}
    	return rowId;
        }
    Sauriez vous comment faire ?
    Pour infos, je rentre mes données dans des EditTexts
    Merci par avance.

  12. #12
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 17
    Points : 14
    Points
    14
    Par défaut mettre en place une base de données et communiquer avec elle à partir d'une activité/layout
    Bonsoir,
    comme vous m'avez beaucoup aidé ya quelques mois sur le choix des bases de données , je reviens vers vous à propos de Sqlite! J'ai bien suivis votre tuto et comme je débute mais vraiment je débute avec Sqlite, vous allez peut être me trouver bête mais je pense que votre exemple complet à la fin n'est pas si complet que ça! car en tant que débudante: je ne sais pas comment utiliser/afficher à la fin la liste des êtres humains enregistrés dans le layout en xml
    please HELP
    merci à vous

  13. #13
    Membre expert
    Avatar de MathiasSeguy
    Homme Profil pro
    Fondateur Android2EE - Formation Expertise Android
    Inscrit en
    Avril 2011
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fondateur Android2EE - Formation Expertise Android
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 185
    Points : 3 692
    Points
    3 692
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par jeanduri Voir le message
    Bonjour

    Comment et où peut-on récupérer le fichier myData.db ?
    Peut-on manipuler cette DB en externe, sur un PC avec ACCESS par exemple ?

    Merci
    Bonjour,
    Avec Access j'en sais rien. En fait, ce fichier tu le télécharges sur ton PC et tu l'ouvres avec un editeur de base de données SQLite, moi j'utilise SqliteBrowser mais j'imagine qu'il y en a plein. Il doit même y avoir des plugin AndroidStudio.
    (Désolé pour ma réponse tardive j'avais pas vu la question).

  14. #14
    Membre expert
    Avatar de MathiasSeguy
    Homme Profil pro
    Fondateur Android2EE - Formation Expertise Android
    Inscrit en
    Avril 2011
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fondateur Android2EE - Formation Expertise Android
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 185
    Points : 3 692
    Points
    3 692
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par frapix Voir le message
    Bonjour,

    Merci pour ce tuto, j'aurais une question concernant l'insertion et la lecture de données, je souhaiterais insérer les données à partir d'un formulaire sauf que je ne trouve pas comment faire, je suppose qu'il faut modifier ce morceau de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    private long insertRecord(ContentValues contentValues) {
    	// Assign the values for each column.
    	contentValues.put(Constants.KEY_COL_NAME, "name");
    	contentValues.put(Constants.KEY_COL_FIRSTNAME, "firstName");
    	contentValues.put(Constants.KEY_COL_EYES_COLOR, "green");
    	contentValues.put(Constants.KEY_COL_HAIR_COLOR, "blond");
    	contentValues.put(Constants.KEY_COL_AGE, 6);
     
    	// Insert the line in the database
    	long rowId = db.insert(Constants.MY_TABLE, null, contentValues);
     
    	// Test to see if the insertion was ok
    	if (rowId == -1) {
    	    Toast.makeText(this, "Error when creating an human",
    		    Toast.LENGTH_LONG).show();
    	} else {
    	    Toast.makeText(this, "Human created and stored in database",
    		    Toast.LENGTH_LONG).show();
    	}
    	return rowId;
        }
    Sauriez vous comment faire ?
    Pour infos, je rentre mes données dans des EditTexts
    Merci par avance.
    Bonjour,
    Oui, c'est cela, mais en fait tu vas te faire une méthode insertOrUpdate(MonObjetMétier) qui ouvre la base de donnée, insère la données et ferme la base de données. La méthode est db.insert ou db.update. Tu mets le nom des colonnes qui va bien et les attributs de ton objet associé.
    (Désolé pour ma réponse tardive j'avais pas vu la question).

  15. #15
    Membre expert
    Avatar de MathiasSeguy
    Homme Profil pro
    Fondateur Android2EE - Formation Expertise Android
    Inscrit en
    Avril 2011
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fondateur Android2EE - Formation Expertise Android
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 185
    Points : 3 692
    Points
    3 692
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par Niniche Voir le message
    Bonsoir,
    comme vous m'avez beaucoup aidé ya quelques mois sur le choix des bases de données , je reviens vers vous à propos de Sqlite! J'ai bien suivis votre tuto et comme je débute mais vraiment je débute avec Sqlite, vous allez peut être me trouver bête mais je pense que votre exemple complet à la fin n'est pas si complet que ça! car en tant que débudante: je ne sais pas comment utiliser/afficher à la fin la liste des êtres humains enregistrés dans le layout en xml
    please HELP
    merci à vous
    Bonjour,
    Ben disons que la complétude dépend du scope de l'article :)=
    Et là, ta question c'est qu'est ce qu'une ListView, comment je charge des données de manière asynchrone et c'est un peu long à t'expliquer dans une réponse ici.

  16. #16
    Futur Membre du Club
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Juillet 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Juillet 2012
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Bonjour Mathias,

    Je reviens sur une réponse un peu plus haut:

    J'évite les CursorAdapter, c'est pour moi un bad design pattern... un peu comme les asynctask dans les activités...
    Je mets dans la Dao et j'en démord pas, jamais.


    La question que je me pose est sur les AsyncTask, car actuellement j'ai réalisé une classe Worker qui lance des AsyncTask en gérant les cancel, le fait d'en gérer plusieurs en même temps etc.. mais je vois souvent que ce n'est pas conseillé de les utiliser.

    Si ça ne vous dérange pas, avez-vous un exemple de classe similaire au fonctionnement des AsyncTask (avec le onPre, publisProgress, doIn, onPost) ? Ou une méthodologie ? Je suppose qu'il faut utiliser des Handler, Runnable etc.. mais j'ai du mal à voir comment jongler entre les thread UI et Work sans faire trop compliqué pour reproduire le même comportement.

    Merci d'avance!
    Rémy

  17. #17
    Membre expert
    Avatar de MathiasSeguy
    Homme Profil pro
    Fondateur Android2EE - Formation Expertise Android
    Inscrit en
    Avril 2011
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fondateur Android2EE - Formation Expertise Android
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 185
    Points : 3 692
    Points
    3 692
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par Lyofen Voir le message
    Bonjour Mathias,

    Je reviens sur une réponse un peu plus haut:

    J'évite les CursorAdapter, c'est pour moi un bad design pattern... un peu comme les asynctask dans les activités...
    Je mets dans la Dao et j'en démord pas, jamais.


    La question que je me pose est sur les AsyncTask, car actuellement j'ai réalisé une classe Worker qui lance des AsyncTask en gérant les cancel, le fait d'en gérer plusieurs en même temps etc.. mais je vois souvent que ce n'est pas conseillé de les utiliser.

    Si ça ne vous dérange pas, avez-vous un exemple de classe similaire au fonctionnement des AsyncTask (avec le onPre, publisProgress, doIn, onPost) ? Ou une méthodologie ? Je suppose qu'il faut utiliser des Handler, Runnable etc.. mais j'ai du mal à voir comment jongler entre les thread UI et Work sans faire trop compliqué pour reproduire le même comportement.

    Merci d'avance!
    Rémy
    Bonjour
    Alors pour une réponse rapide, ça va pas être possible, ce sujet mériterait que je fasse un article. Par contre je t'engage à aller visionner ma conférence DevoxxFr 2012
    de 1h50 à 2h25, c'est la partie où j'en parle.
    Et tu peux aller jeter un coup d'oeil au tutorial associé à cette conférence:ForecastYahooRest
    L'idée est en fait de faire que toutes tes méthodes de tous tes services métiers (qui ne sont pas forcément des services Android) soient asynchrones avec l'utilisation d'un PoolExecutor et de Runnable.
    Bon visionnage et bon lecture de code (du tuto).

    Mathias

  18. #18
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2015
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2015
    Messages : 39
    Points : 29
    Points
    29
    Par défaut
    Citation Envoyé par MathiasSeguy Voir le message
    Bonjour,
    Avec Access j'en sais rien. En fait, ce fichier tu le télécharges sur ton PC et tu l'ouvres avec un editeur de base de données SQLite, moi j'utilise SqliteBrowser mais j'imagine qu'il y en a plein. Il doit même y avoir des plugin AndroidStudio.
    (Désolé pour ma réponse tardive j'avais pas vu la question).
    Pour être un peu plus complet, il faut:

    - dans Android Studio:
    -- lancer l'émulateur
    -- lancer Tools/Android/Android Device Monitor
    -- aller dans File Explorer/data/databases/
    -- sélectionner la base et cliquer sur l'icone "pull a file from the device" en haut à droite
    -- le fichier est "exporté"

    - dans SqLite Export:
    -- ouvrir ce fichier
    -- exporter en xls ou csv


    SqLite Browser exporte en csv ou sql

  19. #19
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Question sur SQLite
    Bonjour,

    Je suis débutant en java Scripte et tente de développer une petite application Android studio.
    Pour cette application je voudrais utiliser une base de données sqlite appelée digicode.
    J'ai donc créé ma base de données avec sqlite browser et l'ai placé dans le dossier asstes de mon application Android.
    J'ai ensuite créé une classe DataBaseHelper étendue de SQLiteOpenHelper.
    Il me faut maintenant récupérer le DB_PATH et le DB_NAME pour pouvoir récupérer les données de ma base de données.
    j'ai donc procédé comme suit :

    private static String DB_PATH = "/data/data/com.example.alban.myapplication/databases/";
    private static String DB_NAME = "digicode.db";

    le problème est que pour le DB_PATH Android studio me renvoie se message : "Do not hardcode "/data/"; use Context.getFilesDir().getPath() instead".
    J'ai tente d'utilisé Context.getFilesDir().getPath() mais Android studio ne reconnait pas les fonctions.

    Je met en pièce jointe un screen de mon code.

    Ai-je bien placé ma base de donnée digicode ? comment connaitre le DB_PATH ?

    Enfin je précise que je me suis aidé du tuto suivant : https://blog.reigndesign.com/blog/us...-applications/ .

    Merci d'avance.
    Images attachées Images attachées  

  20. #20
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2018
    Messages : 1
    Points : 1
    Points
    1
    Par défaut SqLite
    Bonjour,

    merci beaucoup pour le tuto, moi personnellement j'ai développé une petite app pour enregistrer des données dans la BD SqLite, l'application fonctionne très bien ( enregistrement, affichage des données enregistrées etc.) , ma question est: comment trouver et exporter cette base de mon Smartphone au PC, j'ai fouillé tous les répertoires de mon Smartphone mais j'ai pas trouvé ou la base de données est cachée.
    cordialement.

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/09/2015, 09h23
  2. Réponses: 6
    Dernier message: 10/05/2014, 13h38
  3. [BlueJ] Utilisation d'un base de données SQLite
    Par Enguerrand.P dans le forum Environnement de Développement Intégré (EDI)
    Réponses: 1
    Dernier message: 10/01/2014, 17h45
  4. utilisation de base de donnée
    Par mohfa1 dans le forum Bases de données
    Réponses: 2
    Dernier message: 03/03/2005, 18h40

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