今日、私が他の人のソースコードを見ていたとき、私は誤って非常に有用なデータベースアーティファクトを発見しました。ここで共有させてください。
dbflowとは何ですか?
DBFLOWは、注釈操作を使用するAndroid SQLite ORMのツールライブラリです。簡単に言えば、SQLiteデータベースで動作するJavaライブラリです。
中国語でオブジェクト関連マッピングとして翻訳されたORM(オブジェクトリレーショナルマッピング)は、オブジェクト指向のデータベースとリレーショナルデータベースの間の不一致の現象を解決するためのテクノロジーです。簡単に言えば、ORMは、オブジェクトとデータベースの間のマッピングを記述するメタデータを使用して、プログラム内のオブジェクトをリレーショナルデータベースに自動的に持続させます。
なぜDBFLOWを使用するのですか?
1。速度
AnnotationProcessing(Annotation Processor)に基づいて、コンパイル時間にコード生成が生成され、ランタイムのパフォーマンスは優れています。多重化オブジェクトとキャッシュメカニズムを通じて、優れた速度体験が得られます。
2。拡張性
データフォームはデータオブジェクトにマッピングされ、モデルクラスはオブジェクトを介して継承されます。一般的に言えば、ベースモデルのクラスを継承し、クラスのメンバーに注釈を追加して必要なフォームを生成するだけで十分です。
3。クエリステートメント
Greendaoなどの他のライブラリを使用した場合、クエリステートメントはSQLステートメントに非常に近いです。
4。sqliteに基づいています
プラットフォームに制限はありません。SQLiteがある場合はDBFLOWを使用できます。
5。オープンソース
ソースコードは良いことであり、能力のある人はそれをチェックアウトできます。 https://github.com/raizlabs/dbflow
dbflowの使用方法
環境を構成します
何を学びたいとしても、環境が主なものです。 3パーティライブラリの最初のステップは、クラスライブラリをインポートすることです。
最初にメインbuild.gradleにmavenアドレスを追加します:
AllProjects {repositries {maven {url "https://jitpack.io"}}}}第二に、ベースクラスモジュールに依存関係を追加します。
コードコピーは次のとおりです。
def dbflow_version = "4.2.4"依存関係{annotationProcessor "com.github.raizlabs.dbflow:dbflow-processor:$ {dbflow_version}" compile "com.github.raizlabs.dbflow:dbflow-core:$ {dbflow_version}" 「com.github.raizlabs.dbflow:dbflow-rx2:$ {dbflow_version} "com.github.raizlabs.dbflow:dbflow-rx2:$ {dbflow_version}"コンパイル"com.github.raizlabs.dbflow:dbflow-sqlcipher:$ {dbflow_version}"}
Kotlinコードを追加する必要がある場合は、上記のソースコードアドレスを確認し、以下の手順を参照してください。
使用
アプリケーションにinitを追加します
FlowManager。*init*(this);
データベースを作成します
@database(name = dbflowdata。*dbname*、version = dbflowdata。*version*)public class dbflowdata {public static final string*dbname*= "dbflowdata"; public static final int *version *= 1; }Annotationデータベース、名前データベース名バージョンデータベースバージョンを使用します
フォームを作成します
@table(database = dbflowdata.class)public class dbflowmodel extends basemodel {@primarykey(autoincrement = true)public int id; @column public String名; 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; }}注釈を使用するテーブルデータベーススレーブデータベースオブジェクト、フォーム属性は、さまざまな注釈、プライマリプライマリキー、およびcolum列を使用します。
注:ここで継承したベースメモデルはDBFLOWによって提供されますが、継承することはできません。違いは、追加、削除、変更、および検索の点でのみ異なります。
作成後、[build-> make]をクリックすると、必要なコードが../build/generated/source/apt/debugの下で生成されます。
入れる:
フォームオブジェクトを作成して、値を割り当てた後、保存メソッドを呼び出して操作を挿入します。
コードコピーは次のとおりです。dbflowmodeldbflowmodel = new dbflowmodel(); dbflowmodel.name = name; dbflowmodel.save();
消去:
動作するSQLステートメントと同様のコード
sqlite。*delete*().from(dbflowmodel.class).where(dbflowmodel_table。*id*.eq(id)、dbflowmodel_table。*name*.eq(name)).execute();
クエリ:
これには多くの複雑なクエリ操作があります。もっと知りたい場合は、公式のドキュメントをお読みください。
コードコピーは次のとおりです。リスト<DBFLOWMODEL> list = sqlite。*select*()。
更新:
それらはすべて似ています。
sqlite。*update*(dbflowmodel.class).set(dbflowmodel_table。*name*.eq( "pxxxx"))。
注:新しいフォームを作成した後、データベースバージョンをアップグレードする必要があります。そうしないと、エラーが報告されます。
ここでは、主にいくつかの有用なものを共有および記録するために、DBFLOWの基本的な使用を紹介します。
ソースコード:https://github.com/xiaogoudandan/williamapp
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。