Als ich heute den Quellcode anderer Leute beobachtete, entdeckte ich versehentlich ein sehr nützliches Datenbankartefakt. Lassen Sie mich es hier teilen.
Was ist dbflow?
DBFlow ist eine Toolbibliothek für Android SQLite ORM, die Annotationsmanipulation verwendet. Einfach ausgedrückt, ist es eine Java -Bibliothek, die in der SQLite -Datenbank arbeitet.
ORM (Objektrelationskartierung), übersetzt als Objektrelationskartierung auf Chinesisch, ist eine Technologie zur Lösung des Phänomens der Fehlanpassung zwischen objektorientierten und relationalen Datenbanken. Einfach ausgedrückt wird ORM automatisch Objekte im Programm in eine relationale Datenbank bestehen, indem sie Metadaten verwenden, die die Zuordnung zwischen Objekt und Datenbank beschreiben.
Warum DBflow verwenden?
1. Geschwindigkeit
Basierend auf der Annotationsprozessing (Annotation -Prozessor) wird die Codegenerierung zur Kompilierungszeit generiert und die Laufzeitleistung ist ausgezeichnet. Durch Multiplex -Objekte und Caching -Mechanismen wird eine gute Geschwindigkeitserfahrung erzielt.
2. Erweiterbarkeit
Das Datenformular wird einem Datenobjekt zugeordnet und die Modellklasse über das Objekt vererbt. Im Allgemeinen reicht es aus, die Basemodel -Klasse zu erben und den Mitgliedern in der Klasse Anmerkungen hinzuzufügen, um das erforderliche Formular zu generieren.
3. Abfrageanweisung
Wenn Sie andere Bibliotheken wie Greendao verwendet haben, stehen die Abfrageanweisungen sehr nahe an SQL -Anweisungen.
4. Basierend auf SQLite
Auf der Plattform gibt es keine Einschränkung. Sie können DBFlow überall dort verwenden, wo sich SQLite befindet.
5. Open Source
Quellcode ist eine gute Sache, und diejenigen mit Fähigkeiten können ihn überprüfen. https://github.com/raizlabs/dblow
So verwenden Sie DBFlow
Konfigurieren Sie die Umgebung
Egal was Sie lernen möchten, die Umwelt ist die Hauptsache. Der erste Schritt für eine Drei-Parteien-Bibliothek besteht darin, die Klassenbibliothek zu importieren.
Fügen Sie zunächst die Maven -Adresse im Hauptbau hinzu. Gradle:
AllProjects {Repositories {maven {url "https://jitpack.io"}}} Zweitens fügen Sie Abhängigkeiten im Basisklassenmodul hinzu:
Die Codekopie lautet wie folgt:
def dbflow_version = "4.2.4" abhängigkeiten "com.github.raizlabs.dbflow: dbflow-rx2: $ {dbflow_version}" compile "com.github.raizlabs.dblow: dbflow-rx2: $ {dbflow_version}" kompilieren "com.github.raizlabs.dblow: dbflow-sqlcipher: $ {dbflow_version}"}
Wenn Sie den Kotlin -Code hinzufügen müssen, überprüfen Sie die oben genannte Quellcodeadresse und sehen Sie sich die folgenden Anweisungen an.
verwenden
Init in der Anwendung hinzufügen
FlowManager.*Init*(this);
Erstellen Sie eine Datenbank
@Database (name = dbflowdata.*Dbname*, Version = dbflowdata.*Version*) öffentliche Klasse dbflowdata {public static Final String*dbname*= "dbflowdata"; öffentliche statische endgültige int *Version *= 1; }Verwenden Sie Annotationsdatenbank, Name Datenbank Name Version Database Version
Erstellen Sie eine Form
@Table (Database = dbflowdata.class) öffentliche Klasse DBFlowModel erweitert Basemodel {@PrimaryKey (autoincrement = true) public int id; @Column Public String Name; public int getid () {return id; } public void setId (int id) {this.id = id; } public String getName () {return name; } public void setName (String -Name) {this.name = name; }} Verwenden Sie Annotationstabellen -Datenbank -Slave -Datenbankobjekte, Formattribute Verwenden Sie verschiedene Annotationen, Primärschlüssel und Colum -Spalten.
Hinweis: Das Basemodel, das wir hier erbten, wird von DBFlow bereitgestellt und kann nicht geerbt werden. Die Unterschiede unterscheiden sich nur in Bezug auf Zugabe, Löschung, Änderung und Suche.
Klicken Sie nach der Erstellung auf Build-> Make und der erforderliche Code wird unter ../build/generated/source/apt/debug generiert.
einfügen:
Erstellen Sie ein Formularobjekt, nachdem Sie den Wert zugewiesen haben, die Speichernmethode zum Einfügen des Vorgangs.
Die Codekopie lautet wie folgt: dbflowmodel dbflowmodel = new dbflowmodel (); dbflowmodel.name = name; dbflowmodel.save ();
löschen:
Code ähnlich wie bei SQL -Anweisungen zum Betrieb
Sqlite.*Delete*() .from (dbflowmodel.class) .where (dbflowmodel_table.*Id*.eq (id), dbflowmodel_table.*Name*.eq (name)) .execute ();
Abfrage:
Dies hat viele komplexe Abfrageoperationen. Wenn Sie mehr wissen möchten, lesen Sie bitte die offizielle Dokumentation.
Die Codekopie lautet wie folgt: Liste <dbflowModel> list = SQLite.*Select*(). Von (dbflowmodel.class) .QueryList ();
erneuern:
Sie sind alle ähnlich.
Sqlite.*Update*(dbflowmodel.class) .set (dbflowmodel_table.*Name*.eq ("pxxxx") .where (dbflowmodel_table.*Name*.eq ("p0000") .execute (); Hinweis: Nach dem Erstellen eines neuen Formulars müssen Sie die Datenbankversion aktualisieren, andernfalls wird ein Fehler gemeldet.
Hier werde ich die grundlegende Verwendung von DBFlow vorstellen, hauptsächlich zum Teilen und Aufzeichnen einiger nützlicher Dinge.
Quellcode: https://github.com/xiaogoudandan/williamapp
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.