Up og kjører med Realm for Android 
 19 
 Del 
 3 
 Del 
 
 Dette Cyber mandag Envato Tuts + kurs vil bli redusert til bare $ 3. Ikke gå glipp av. 
 
 Innledning 
 
 Hvis du har vært å holde tritt med de nyeste trendene i Android utvikling, har du sannsynligvis hørt om Realm. Realm er et lett database som kan erstatte både SQLite og ORM bibliotekene i din Android-prosjekter. 
 
 I forhold til SQLite, er Realm raskere og har mange moderne funksjoner, som for eksempel JSON støtte, en flytende API, data endringsmeldinger og kryptering støtte, som alle gjør livet enklere for Android-utviklere. 
 
 I denne rask spiss, du kommer til å lære det grunnleggende Realm for Android. I denne opplæringen, vil jeg bli useing Realm v0.84.1. 
 
 1. Legge Realm til et prosjekt 
 
 For å bruke Realm i en Android-prosjektet, må du legge det som en kompilering avhengighet i app modulens build.gradle fil 
 kompilering 'io.realm. Riket-android: 0.84.1 '
 2. Opprette en Realm 
 
 En Realm ligner på en SQLite database. Den har en fil er knyttet til den, som en gang skapt, vil vedvare på Android filsystem. 
 
 For å opprette en ny Realm, kan du ringe den statiske Realm.getInstance metoden fra innsiden noen aktivitet. 
 Realm myrealm = Realm.getInstance (sammenheng);. 
 Legg merke til at du ringer Realm.getInstance, uten å passere en RealmConfiguration til det, resultater i etableringen av en Realm fil kalt default.realm 
 
 Hvis du vil legge til en annen Realm til programmet ditt, må du bruke en RealmConfiguration.Builder objekt og gi Realm filen et unikt navn. 
 Realm myOtherRealm = Realm.getInstance (ny RealmConfiguration.Builder (kontekst) .name ("myOtherRealm.realm"). bygge ()); 
 3. Opprette en RealmObject 
 
 Alle Bean kan lagres i en Realm når den utvider RealmObject klassen. Hvis du lurer på hva en Javabean er, er det rett og slett en Java-klasse som er serializable, har en standard konstruktør, og har getter /setter-metoder for sine medlemsvariabler. For eksempel kan forekomster av følgende klasse enkelt lagres i en Realm: 
 public class Land strekker RealmObject {private String navn; private int befolkningen; offentlig Land () {} public String getName () {return navn; } Public void setName (String navn) {this.name = navn; } Public int getPopulation () {return befolkningen; } Public void setPopulation (int befolkningen) {this.population = befolkningen; }} 
 Hvis du vil bruke et medlem variabel av en RealmObject som en primærnøkkel, kan du brukePrimaryKey merknader. For eksempel, her er hvordan du vil legge til en primærnøkkel kalt koden til Land Klasse: 
PrimaryKeyprivate String kode; public String Vis koder () {return kode;} public void setCode (String kode) {this.code = kode; } 
 4. Opprette Transaksjoner 
 
 Mens du leser data fra en Realm er veldig enkelt, så vil du se i neste trinn, skrive data til det er litt mer komplisert. Realm er ACID-kompatibel og for å sikre atomicity og konsistens, Realm tvinger deg til å utføre alle skriveoperasjoner inne i en transaksjon. 
 
 Hvis du vil starte en ny transaksjon, bruker beginTransaction metoden. Tilsvarende, for å avslutte transaksjonen, bruker commitTransaction metoden 
 
 Her er hvordan du vil opprette og lagre en forekomst av Land klassen. 
 MyRealm.beginTransaction (); //Opprett et objekt Land country1 = myRealm.createObject (Country.class); //Sett feltene country1.setName ("Norge"); country1.setPopulation (5165800); country1.setCode ("NO"); myRealm.commitTransaction (); 
 Du har kanskje lagt merke til at country1 ble ikke opprettet ved hjelp av konstruktøren av landet klassen. For en Realm å administrere en forekomst av en RealmObject, må forekomsten bli opprettet ved hjelp av Create metoden. 
 
 Hvis du må bruke konstruktøren, ikke glem å bruke copyToRealm metode for den aktuelle Realm objekt før du forplikte transaksjonen. Her er et eksempel: 
 //Opprett objectCountry country2 = new Country();country2.setName("Russia");country2.setPopulation(146430430);country2.setCode("RU");myRealm.beginTransaction(); Land copyOfCountry2 = myRealm.copyToRealm (country2); myRealm.commitTransaction (); 
 5. Skrive spørringer 
 
 Realm byr på en svært intuitiv og flytende API for å lage spørringer. For å opprette en spørring, kan du bruke hvor metode for den aktuelle Realm objektet og passere klassen av objektene du er interessert i. Når du har opprettet spørringen, kan du hente alle resultatene med findAll metoden, som returnerer en RealmResults objekt. I følgende eksempel, vi hente og skrive ut alle objekter av typen Land: 
 RealmResults < Country > results1 = myRealm.where (Country.class) .findAll (); for (Land c: results1) {Log.d ("results1", c.getName ());} //Skriver Norge, Russland 
 Realm tilbud flere treffende navnet metoder, for eksempel beginsWith, endsWith, lesserThan og Større enn, kan du bruke til å filtrere resultatene. Følgende kode viser deg hvordan du kan bruke Større enn metoden for å hente bare de Land objekter der befolkningen er større enn 100 millioner: 
 RealmResults < Country > results2 = myRealm.where (Country.class) .greaterThan ("befolkning", 100 millioner) .findAll (); //Får bare Russland 
 Hvis du vil at resultatene av spørringen som skal sorteres, kan du bruke findAllSorted metode . Som sine argumenter, tar det en streng som angir navnet på feltet for å sortere og en boolsk spesifiserer sorteringsrekkefølgen 
 //Sorter etter navn, i synkende orderRealmResults <. Country > results3 = myRealm.where (Country.class) .findAllSorted ("navn", false); //Gets Russland, Norge 
 Konklusjon 
 
I denne rask spiss, lært deg hvordan du bruker Realm i en Android prosjekt. Du så hvor enkelt det er å lage en Realm database, lagre data i det, og spørre etter den. Hvis du vil vite mer om Realm for Android, kan du gå gjennom sin Java dokumentasjon. Anmeldelser

