Hari ini, ketika saya menonton kode sumber orang lain, saya secara tidak sengaja menemukan artefak basis data yang sangat berguna. Biarkan saya membagikannya di sini.
Apa itu dbflow?
DBFLOW adalah pustaka alat untuk Android Sqlite ORM yang menggunakan manipulasi anotasi. Sederhananya, ini adalah perpustakaan Java yang beroperasi pada database SQLite.
ORM (pemetaan objek-relasional), diterjemahkan sebagai pemetaan objek-relasional dalam bahasa Cina, adalah teknologi untuk menyelesaikan fenomena ketidakcocokan antara database yang berorientasi objek dan relasional. Sederhananya, ORM secara otomatis bertahan objek dalam program ke dalam database relasional dengan menggunakan metadata yang menjelaskan pemetaan antara objek dan database.
Mengapa Menggunakan DBFlow?
1. Kecepatan
Berdasarkan AnnotationProcessing (anotasi prosesor), pembuatan kode dihasilkan pada waktu kompilasi, dan kinerja runtime sangat baik. Melalui objek multiplexing dan mekanisme caching, pengalaman kecepatan yang baik diperoleh.
2. Ekstensibilitas
Formulir data dipetakan ke objek data, dan kelas model diwarisi melalui objek. Secara umum, itu cukup untuk mewarisi kelas Basemodel dan menambahkan anotasi kepada anggota di kelas untuk menghasilkan formulir yang diperlukan.
3. Pernyataan kueri
Jika Anda telah menggunakan perpustakaan lain seperti Greendao, pernyataan kueri sangat dekat dengan pernyataan SQL.
4. Berdasarkan Sqlite
Tidak ada batasan pada platform, Anda dapat menggunakan dbflow di mana pun ada sqlite.
5. Open Source
Kode sumber adalah hal yang baik, dan mereka yang memiliki kemampuan dapat memeriksanya. https://github.com/raizlabs/dbflow
Cara menggunakan dbflow
Konfigurasikan lingkungan
Tidak peduli apa yang ingin Anda pelajari, lingkungan adalah hal utama. Langkah pertama untuk perpustakaan tiga partai adalah mengimpor perpustakaan kelas.
Pertama tambahkan alamat Maven di build utama. GRADLE:
AllProjects {repositories {maven {url "https://jitpack.io"}}} Kedua, tambahkan dependensi dalam modul kelas dasar:
Salinan kode adalah sebagai berikut:
def dbflow_version = "4.2.4" dependensi {annotationprocessor "com.github.raizlabs.dbflow: dbflow-processor: $ {dbflow_version}" compile "com.github.raizlabs.dbflow: dbflow-core: $ {dbflow" "com.github.raizlabs.dbflow: dbflow-rx2: $ {dbflow_version}" compile "com.github.raizlabs.dbflow: dbflow-rx2: $ {dbflow_version}" compile "com.github.raizlabs.dbflow: dbflow-sqlcipher: $ {dbflow_version}"}
Jika Anda perlu menambahkan kode Kotlin, periksa alamat kode sumber di atas dan lihat instruksi di bawah ini.
menggunakan
Tambahkan init dalam aplikasi
Flowmanager.*Init*(ini);
Buat database
@Database (name = dbflowData.*Dbname*, versi = dbflowdata.*Versi*) kelas publik dbflowdata {string final statis public*dbname*= "dbflowData"; Versi int *public static final *= 1; }Gunakan database anotasi, nama versi basis data versi database versi
Buat formulir
@Table (database = dbflowData.class) kelas publik dbflowmodel memperluas Basemodel {@primarykey (autoIncrement = true) public int id; @Column nama string publik; publik int getId () {return id; } public void setid (int id) {this.id = id; } public string getName () {return name; } public void setName (name string) {this.name = name; }} Gunakan Annotations Table Database Objek Basis Data Slave, Atribut Bentuk Gunakan berbagai anotasi, kunci primer primer, dan kolom Colum.
Catatan: Basemodel yang kami warisi di sini disediakan oleh DBFLOW, dan tidak dapat diwariskan. Perbedaannya hanya berbeda dalam hal penambahan, penghapusan, modifikasi dan pencarian.
Setelah pembuatan, klik Build-> Make dan kode yang diperlukan akan dihasilkan di bawah ../build/generated/source/apt/debug.
menyisipkan:
Buat objek formulir, setelah menetapkan nilai, hubungi metode simpan untuk memasukkan operasi.
Salinan kode adalah sebagai berikut: dbflowmodel dbflowmodel = dbflowmodel baru (); dbflowmodel.name = name; dbflowmodel.save ();
menghapus:
Kode mirip dengan pernyataan SQL untuk beroperasi
Sqlite.*Hapus*() .from (dbflowmodel.class) .where (dbflowmodel_table.*Id*.eq (id), dbflowmodel_table.*Nama*.eq (nama)) .execute ();
Pertanyaan:
Ini memiliki banyak operasi kueri yang kompleks. Jika Anda ingin tahu lebih banyak, silakan baca dokumentasi resmi.
Salinan kode adalah sebagai berikut: Daftar <dbflowModel> Daftar = sqlite.*Pilih*(). Dari (dbflowmodel.class) .queryList ();
memperbarui:
Mereka semua serupa.
Sqlite.*Perbarui*(dbflowmodel.class) .set (dbflowmodel_table.*Name*.eq ("pxxxx")) .where (dbflowmodel_table.*Name*.eq ("p0000")). Execute (); Catatan: Setelah membuat formulir baru, Anda perlu meningkatkan versi database, jika tidak kesalahan akan dilaporkan.
Di sini saya akan memperkenalkan penggunaan dasar DBFLOW, terutama untuk berbagi dan merekam beberapa hal yang berguna.
Kode Sumber: https://github.com/xiaogoudandan/williamapp
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.