pourquoi nous avons besoin de onUpgrade(); la méthode de SQLiteOpenHelper classe
Je m en suivant ce tutoriel.http://www.androidhive.info/2011/11/android-sqlite-database-tutorial/
tout organisme peut veuillez me faire effacer ce bout de code.
// Creating Tables
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS + "("
+ KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT,"
+ KEY_PH_NO + " TEXT" + ")";
db.execSQL(CREATE_CONTACTS_TABLE);
}
// Upgrading database
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// Drop older table if existed
db.execSQL("DROP TABLE IF EXISTS " + TABLE_CONTACTS);
// Create tables again
onCreate(db);
}
Questions
Quel est le but de onUpgrade();
méthode?
Lorsqu'il est Appelé? comme docs dit this is Called when the database needs to be upgraded
que signifie, par la mise à niveau de la base de données?
Important
pourquoi nous déposer le tableau de cette méthode et de le recréer?
Merci d'avance.
OriginalL'auteur Qadir Hussain | 2013-03-27
Vous devez vous connecter pour publier un commentaire.
onUpgrade est essentiellement pour le traitement des nouveaux db changements(peut-être de nouvelles colonnes outre,le tableau plus) pour toute nouvelle version de votre application.
Dropant la table n'est pas toujours nécessaire dans onUpgrade tout dépend de ce que votre cas d'utilisation. Si l'exigence est de ne pas persiste les données de votre ancienne version de l'app, puis déposez devrait aider,mais si son, comme le changement du schéma alors qu'elle ne devrait avoir de modifier les scripts.
disons que u ont une application dans google play avec dbversion=1 et maintenant, vous êtes planification à relâcher une nouvelle version de votre application avec la caractéristique supplémentaire qui doit modifications de base de données. donc u modifier votre dbversion=2 et la onUpgrade méthode est automatiquement appelée pour les utilisateurs qui sont déjà à l'aide de ur ancienne version de l'application. De l'espoir, je suis cler ici.
🙂 Oui encore effacé certains comment. il y a aussi une méthode de onDowngrade(). lorsqu'il est appelé?
Ses juste à l'opposé de ce que onUpgrade n'mais oui, à strictement parler, u habitude normalement annuler.
OriginalL'auteur Deva
De mise à niveau des moyens des modifications ont été apportées au schéma de base de données(les numéros de version sont différents) et il doit être mis à niveau. La suppression de la table et la recréation est une façon de le faire. Vous pouvez également question "alter table" consolidés.
Pas de. Qui n'est appelée que lorsque la base de données est créée la première fois.
OriginalL'auteur Robby Pond
Lorsque vous ouvrez votre base de données, il vérifie le numéro de version et s'il existe ou pas. Vous pouvez seulement de "mise à niveau" de votre base de données plutôt que d'en créer de nouvelles.
Un bon tutoriel: http://www.vogella.com/articles/AndroidSQLite/article.html
Il est tout à vous. Rappelez-vous juste que vous ne pouvez pas contrôler comment/quand les utilisateurs de mise à jour. Certains iront de 1 à 2 à 3, etc. D'autres vont commencer à 2 ou 3, etc. Certains vont commencer à 1 et ne jamais mettre à jour 😉 (c'est le cas, croyez-moi.) Et d'autres encore seront sauter une version (ou 5). C'est pourquoi vous avez besoin de créer et de méthodes de mise à niveau. Assurez-vous d'avoir un chemin d'accès.
OriginalL'auteur Bill Mote
Cette méthode est appelée lorsque vous mettez à jour votre version de base de données. Il tombe des tables existantes et en crée de nouveau lorsque la méthode onCreate est de nouveau appelée.
OriginalL'auteur Twinkle Mishra
Répondre à 4 questions:
1) Le but de onUpgrade est de gérer une nouvelle structure de base de données. Vous pouvez lancer votre application avec des fonctionnalités simples, alors vous avez besoin, par exemple pour ajouter une nouvelle colonne, vous devez donc l'augmentation de la version de votre base de données de 1 à 2 et dans onUpgrade
donner les instructions pour ajouter une nouvelle colonne, de sorte que si l'utilisateur mise à jour de l'application, la nouvelle colonne devenir ajouté.
2) onUpgrade est appelé lorsque vous avez une nouvelle version de votre base de données et vous incrémenté l'int nombre dans la méthode super( c'est le 1er, donc on finit par se changer en 2)
3) Veuillez voir ci-dessus au sujet de ce que signifie, pour mettre à jour la db
4) Nous laisser Tomber de la table et de le recréer, parce que pour modifier la table (exemple pour l'ajout d'une nouvelle colonne qui correspond à une nouvelle fonctionnalité) une logique manière de procéder pourrait être, avant de "détruire"/DROP sur la table, puis en créer une nouvelle avec toutes les données. Mais cela peut ne pas être le chemin à parcourir, bien que de recréer les données pourraient dire que les numéros d'identification seront consécutives( habituellement ne sont pas consécutifs: vous pourriez avoir 1, 2,..4 car 3 a été supprimé), d'où la suppression et puis la création de la table à nouveau, et finalement chargement des données précédentes, vous pourriez avoir cette id la cohérence.
Parfois, vous souhaiterez peut-être utiliser ALTER au lieu de la GOUTTE. Pourquoi? Généralement parce que l'utilisation de CHUTE de l'utilisateur perd le contenu a déjà dans la base de données, alors si vous voulez en savoir plus sur les Meilleures pratiques et les plus complexes des scénarios de vie réelle, jetez un oeil à cette incroyable répondre
OriginalL'auteur trocchietto