[JAVA] Implémentation d'une base de données avec Realm

Voici un résumé de la mise en œuvre du royaume de base. Cette fois, je vais vous expliquer en utilisant le code de l'application que je suis en train de créer.

⒈ Préparation préalable

Tout d'abord, ajoutez le classpath au fichier build.gradle.

uildscript {
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.2'
        classpath "io.realm:realm-gradle-plugin:5.1.0"
    }
}

C'est la partie ajoutée par "class path" io.realm: realm-gradle-plugin: 5.1.0 "" dans le code ci-dessus.

⒉ Définition d'objet

Ensuite, créez une sous-classe de RealmObject et définissez l'objet.

public class Recipe extends RealmObject {

    @PrimaryKey
    int id;
    @Required
    private String name;
    @Required
    private String cookingTime;

L'utilisation de la clé primaire ralentit un peu la création et la mise à jour des objets, mais accélère la recherche. Vous ne pouvez pas spécifier plusieurs champs comme clé primaire.

Après avoir défini, préparez le getter et le setter.

public int getId() {
        return id;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setCookingTime(String cookingTime) {
        this.cookingTime = cookingTime;
    }

    public void setId(int id) {
        this.id = id;
    }


}

⒊ Définition du modèle

Ensuite, définissez le modèle.

Créez de nouvelles modifications et mettez-les à jour comme suit. Les modèles avec une clé primaire peuvent utiliser copyToRealmOrUpdate () pour créer ou mettre à jour des objets.

public class RecipeModel {

    private Realm mRealm = Realm.getDefaultInstance();

    /**
     *Créer une nouvelle recette ou mettre à jour modifier
     *
     * @param recetteId ID de recette
     * @param recetteName Nom de la recette
     * @param cookingTime Temps de cuisson
     */
    public void copyOrUpdate(@Nullable Integer recipeId, String recipeName, String cookingTime) {
        if (recipeId == null) {
            recipeId = makeRecipeId();
        }
        Recipe recipe = new Recipe();
        recipe.setId(recipeId);
        recipe.setName(recipeName);
        recipe.setCookingTime(cookingTime);

        mRealm.beginTransaction();

        mRealm.copyToRealmOrUpdate(recipe);

        mRealm.commitTransaction();
    }

Créez-en un nouveau si l'ID est nul.

Supprimez-le comme suit.

    /**
     *Supprimer la recette
     *
     * @param recetteId ID de recette
     */
    public void deleteRecipe(int recipeId) {
        mRealm.beginTransaction();

        //Dans la liste des recettes, récupérez la première recette avec un identifiant qui correspond à recetteId
        Recipe recipe = mRealm.where(Recipe.class).equalTo("id", recipeId).findFirst();
        if (recipe != null) {
            recipe.deleteFromRealm();
        }

        mRealm.commitTransaction();
    }

Résumé

① Ajouter classpath au fichier build.gradle ② Définition d'objet ③ Définition du modèle

Realm facilite la mise en œuvre d'une base de données au cours de ces trois étapes. Veuillez essayer par tous les moyens essayez.

Recommended Posts

Implémentation d'une base de données avec Realm
Implémentation de la validation à l'aide d'expressions régulières
Exemple de code pour l'implémentation Singleton à l'aide d'énumération
Implémentation de la fonction d'authentification des utilisateurs à l'aide de devise (2)
Implémentation de la fonction d'authentification des utilisateurs à l'aide de devise (1)
Implémentation des onglets à l'aide de TabLayout et ViewPager
Implémentation par lots dans l'environnement RubyOnRails à l'aide de Digdag
Essayez d'utiliser l'API REST de JobScheduler - implémentation Java RestClient--