2017-09-22 2 views
0

Je passe par une requête SQL autre solution. Je ne suis pas capable de trouver des solutions adaptées à mon problème.Comment écrire Créer et mettre à jour une requête dans la bibliothèque de pièces?

Dans Mon projet, j'ai les données d'insertion dans la table. Je dois suivre quelques étapes Etape 1: - Je dois vérifier les données via une clé primaire que les données sont disponibles ou non. Étape 2: si des données sont disponibles, je dois mettre à jour ces données et renvoyer le code de réponse. Sinon, je dois passer à l'étape 3 Étape 3: si les données ne figurent pas dans la table, insérez-y les données et renvoyez le code. J'utilise Room Library. Je suis confus comment écrire dans @Dao pour effectuer cette tâche.

Merci à l'avance

Répondre

0

architecture Android Composants introduits Persistance Chambre Android Library qui est le mieux pour la gestion de base de données SQLite Android. Entity in Room Persistence représente une table de base de données et Dao est l'endroit où nous définissons les interactions de base de données. Exemple

@Entity 
public class Trail { 
     public @PrimaryKey String id; 
     public String name; 
     public double kilometers; 
     public int difficulty; 
} 

Dao possible pour cette table sera

@Dao 
public interface TrailDao { 

     @Insert(onConflict = IGNORE) 
     void insertTrail(Trail trail); 

     @Query("SELECT * FROM Trail") 
     List<Trail> findAllTrails(); 

     @Update(onConflict = REPLACE) 
     void updateTrail(Trail trail); 

     @Query("DELETE FROM Trail") 
     void deleteAll(); 
    } 

De plus, vous devez fournir la mise en œuvre de RoomDatabase, par exemple

@Database(entities = {Trail.class}, version = 1) 
public abstract class AppDatabase extends RoomDatabase { 

    private static AppDatabase INSTANCE; 

    public abstract TrailDao trailDao(); 

    public static AppDatabase getInMemoryDatabase(Context context) { 
     if (INSTANCE == null) { 
      INSTANCE = 
Room.inMemoryDatabaseBuilder(context.getApplicationContext(), AppDatabase.class) 

        .allowMainThreadQueries() 
        .build(); 
     } 
     return INSTANCE; 
    } 

    public static void destroyInstance() { 
     INSTANCE = null; 
    } 
} 

utiliser comme

AppDatabase. getInMemoryDatabase(context).trailDao().findAllTrails(); 
+0

ce qui est la réponse code après insertion et mise à jour –

+0

@PrinceKumar le type de retour est vide. –

+0

en fonction de votre code de retour tapez void mais il supporte le type de retour int aussi si sa valeur de retour est 1 alors vos données sont mise à jour else non mise à jour –