SQLite
 sql >> Base de données >  >> RDS >> SQLite

Est-il vraiment nécessaire de créer des tables SQLite à chaque démarrage de l'application ?

Je pense que vous vous méprenez ici. Lorsqu'un objet SQLiteOpenHelper est construit, il vérifiera si la base de données SQLite existe ou non, sinon, il appellera son onCreate() méthode (où normalement les développeurs implémentent le SQL de création de base de données)

Mise à jour :
@Clay Shannon :Je vais vous expliquer le mécanisme de fonctionnement du projet Eclipse et Android. Disons que vous utilisez Eclipse pour programmer un projet Android. Le nouveau projet créera un dossier de projet dans l'espace de travail (dans votre cas, il s'agit de C:\aXX3&Space\Android\workspace et le dossier du projet est OnDemandAndAutomatic_Project ). Ce dossier contiendra plusieurs sous-dossiers tels que :src, bin, assets, res,... Chaque dossier a son propre rôle, et vous êtes intéressé par le dossier assets, n'est-ce pas ? Le dossier Assets est utilisé pour contenir des fichiers de référence (que vous ne pouvez pas ou que vous ne voulez pas mettre dans le dossier res) tels que :fichier html, fichier son, fichier images, fichier texte... Quand Eclipse construit l'apk à partir du projet, ces fichiers sont également inclus dans l'apk. Lorsque vous installez l'apk sur un appareil Android, l'apk est copié dans le dossier système Android, et un dossier contenant les données de l'application est également créé, comme Dharmendra l'a mentionné :/data/data/{packagename}/ (nom du package tel que com.google.app, etc., et ce chemin est pour votre système d'exploitation Android de votre appareil, pas pour Windows).

Votre cas ici est que vous souhaitez utiliser votre base de données déjà existante, vous devez donc implémenter une fonction qui vérifie si votre base de données existe ou non, sinon copiez votre base de données dans le chemin de la base de données /data/data/ {packagename}/databases/ , et appelez cette fonction au démarrage de votre application. Et comment le faire est déjà répondu ici Comment copier la base de données existante d'une application à une autre. Voici également une référence pour accéder aux fichiers d'actifs, au cas où vous ne le sauriez pas http://www.wiseandroid.com/post/2010/06/14/Android-Beginners-Intro-to-Resources-and-Assets.aspx

J'espère maintenant que vous pouvez résoudre votre problème. Remarque  :votre base de données déjà existante doit être une base de données SQLite, sinon l'application ne la reconnaîtra pas même si vous copiez dans le bon chemin.