Enregistrement en local
louisgautier
Messages postés
1838
Statut
Membre
-
louisgautier Messages postés 1838 Statut Membre -
louisgautier Messages postés 1838 Statut Membre -
Bonjour,
Je souhaite enregistrer en base de donnée intégralité d'un objet "Séries".
Pour faire simple, je reçois une List<SerieUpdate> (grâce à un API)
Chaque "ligne" de ma liste contien un id, et en requestionnant l'api j'obtiens un objet Series.
Le hic ? J'aimerais stoquer chaque "s" dans une base de donnée en local sur le téléphone. Cette bdd se viderais a la fermeture de l'application et la "recherche" se ferais dans un autre processus, la list étant assez longue le but étant que ca sois rapide.
Pour l'instant je suis sur un AsyncTask car je ne sais pas comment pour chaque s, l'inscrire dans ma bdd.
Un coup de main ?
Merci !
Je souhaite enregistrer en base de donnée intégralité d'un objet "Séries".
Pour faire simple, je reçois une List<SerieUpdate> (grâce à un API)
Chaque "ligne" de ma liste contien un id, et en requestionnant l'api j'obtiens un objet Series.
try {
List<SerieUpdate> updates = tvdb.getWeeklyUpdates().getSeriesUpdates();
index = updates.size(); //longueur de la liste update
for (int i = 0; i<updates.size(); i++){
SeriesUpdate elt = updates.get(i);
int id = elt.getSeriesId();
String idS = String.valueOf(id);
s = tvdb.getSeries(idS, "fr");
}
Le hic ? J'aimerais stoquer chaque "s" dans une base de donnée en local sur le téléphone. Cette bdd se viderais a la fermeture de l'application et la "recherche" se ferais dans un autre processus, la list étant assez longue le but étant que ca sois rapide.
Pour l'instant je suis sur un AsyncTask car je ne sais pas comment pour chaque s, l'inscrire dans ma bdd.
Un coup de main ?
Merci !
| EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Enregistrement en local
- Appdata local - Guide
- Ip local - Guide
- Local send - Télécharger - Divers Utilitaires
- Partager un dossier en reseau local - Guide
- Enregistrement mp3 gratuit - Télécharger - Streaming audio
5 réponses
Hello,
Plusieurs choix s'offrent à toi:
- sqlite "classique": recherche DataBaseHelper
- Annotated SQL: bdd fonctionnant grâce à des annotations
- Realm: nouveau moteur de bdd
Plusieurs choix s'offrent à toi:
- sqlite "classique": recherche DataBaseHelper
- Annotated SQL: bdd fonctionnant grâce à des annotations
- Realm: nouveau moteur de bdd
Bonjour,
Je passe par realm (j'en connais aucun des trois, mais realm est apparemment très apprécier dans le secteur pro, alors je prend de l'avance)
J'ai crée une classe realm MyClass. Mais ma question persise, comment enregistrer mes 2000 Series dans 2000 MyClass ?
Je passe par realm (j'en connais aucun des trois, mais realm est apparemment très apprécier dans le secteur pro, alors je prend de l'avance)
J'ai crée une classe realm MyClass. Mais ma question persise, comment enregistrer mes 2000 Series dans 2000 MyClass ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question try {
updates = tvdb.getWeeklyUpdates().getSeriesUpdates(); //cree une liste de seriesUpdates
index = updates.size(); //longueur de la liste update
rdm = String.valueOf(index); //cast en string pour le log.d
Log.d("taille update", String.valueOf(rdm));
myOtherRealm.beginTransaction();
MyListSerie myLSerie = myOtherRealm.createObject(MyListSerie.class);
int aa = index; //au cas ou j'ai besoin d'index
while ( aa > 0 ){
myLSerie.id = aa;
mySerie = myOtherRealm.createObject(MySerie.class);
SeriesUpdate elt = updates.get(aa);
int id = elt.getSeriesId();
s = tvdb.getSeries(String.valueOf(id), "fr");
mySerie.seriesId = s.getSeriesId();
mySerie.language = s.getLanguage();
mySerie.seriesName = s.getSeriesName();
mySerie.banner = s.getBanner();
mySerie.overview = s.getOverview();
mySerie.firstAired = s.getFirstAired();
mySerie.actors = s.getActors().toString();
mySerie.airsDayOfWeek = s.getAirsDayOfWeek();
mySerie.airsTime = s.getAirsTime();
mySerie.contentRating = s.getContentRating();
mySerie.genres = s.getGenres().toString();
mySerie.network = s.getNetwork();
mySerie.runtime = s.getRuntime();
mySerie.status = s.getStatus();
mySerie.fanart = s.getFanart();
mySerie.lastUpdated = s.getLastUpdated();
mySerie.poster = s.getPoster();
aa--;
myLSerie.stuff.add(mySerie);
}
J'aimerais savoir ce que tu en pense ! Je ne sais pas si c'est optimum, ou même si ca fonctionne mais dans le résonnement, je suis dans le bon ?
Merci
Entre temps j'ai eu le temps de tester et ca ne fonctionne pas, pas du tout.
Mes objet était en public et il faut etre en private, du coup ca change tout (rien d'insurmontable) sauf pour ajouter a la list une serie..
myLSerie.setStuff(mySerie); ne fonctionne pas
Mes objet était en public et il faut etre en private, du coup ca change tout (rien d'insurmontable) sauf pour ajouter a la list une serie..
myLSerie.setStuff(mySerie); ne fonctionne pas
public class MyListSerie extends RealmObject {
@PrimaryKey
private int id;
private RealmList<MySerie> stuff;
//getters setters
public class MySerie extends RealmObject {
@PrimaryKey
private String id;
private String seriesId;
private String language;
private String seriesName;
private String banner;
private String overview;
private String firstAired;
private String actors;
private String airsDayOfWeek;
private String airsTime;
private String contentRating;
private String genres;
private String network;
private String rating;
private String runtime;
private String status;
private String fanart;
private String lastUpdated;
private String poster;
//getters setters