Comment puis-je intégrer une base de données SQLite dans une application?
Je pense que j'ai une certaine compréhension de base problème alors peut-être que quelqu'un est en mesure de vous aider 🙂
Je suis le développement d'une application Android à l'aide d'Eclipse et cette application utilise une base de données (seulement la lecture à partir de la base de données seront mises en œuvre). La base de données contient près de 4 000 entrées c'est à dire la création et le remplissage de la base de données via le code source n'est pas une option. Ainsi, j'ai créé la base de données à l'avance avec tous ses dossiers.
Mais comment puis-je "embed" ce fichier de base de données dans mon application, puis y accéder? Le databse sera d'environ 500 ko à la taille du fichier. Téléchargement à partir d'un serveur distant n'est pas une option, soit que ce n'est pas autorisé.
Grâce,
Robert
Vous devez vous connecter pour publier un commentaire.
J'ai résolu le problème en:
ajoutant
file.db
en projet/dossier des actifs;écrit prochaine classe:
Bel article sur ReignDesign blog intitulé À l'aide de votre propre base de données SQLite dans les applications Android. En gros, vous créez au préalable votre base de données, le mettre dans votre répertoire actif dans votre apk, et lors de la première utilisation de la copie d' "/data/data/YOUR_PACKAGE/bases de données/répertoire.
Je l'ai fait dans le passé par le stockage d'un fichier JSON dans l'application dans le
res/raw
ressources et puis charger le fichier sur la première charge. À partir de là, vous pouvez utiliser le mode d'insertion en bloc de lot-importer des entrées. Voir mon chargeur de base de données pour les Unités comme un exemple de cette technique. Un des avantages de l'res/raw
style est que vous pouvez utiliser Android sélection de ressources système pour localiser les données de différentes régions, de sorte que vous pourriez avoir une autre base de données (ou une partie de celui-ci) pour d'autres langues ou des régions.Vous pouvez aussi mettre un raw dump SQL dans un fichier similaire et de la charge que sur la première charge. Vous pouvez obtenir le fichier de ressources à l'aide de openRawResource(int). Je recommande ce lieu de stockage d'une pré-faites sqlite fichier de base de données pour améliorer la compatibilité entre les versions de sqlite, ainsi que de faire l'entretien de la base de données plus facile (à partir d'une application cycle de vie du développement POV).
Lorsque le chargement en vrac, assurez-vous d'utiliser des transactions, que cela va aider à accélérer les choses et de rendre le chargement plus fiable.
Dans un commentaire à cette réponse, CommonsWare recommande à l'encontre de la même méthode proposée par @evilone ici (c'est à dire, la copie de la base de données à partir d'éléments de vous-même). Au lieu de cela, vous devez utiliser l'essayé et testé
SQLiteAssetHelper
. Je l'ai utilisé dans Android Studio et il fonctionne bien.La les directions sont assez claires. Voici quelques extraits:
Mettre votre base de données dans
assets/databases/northwind.db
(à l'aide de la base de données que le nom que vous avez).