Android向けの5つの最高のORM



ご存知のように、このOSはYotaPhoneにインストールされているため、Android向けアプリケーションの開発に直接関与しています。 また、この投稿では、Android向けアプリケーションの開発のさまざまな側面をカバーする一連の出版物を公開し、私たちと他の専門家の両方の経験を共有します。 ところで、先ほど、SDKとYotaPhoneアーキテクチャの機能について既に説明しましたが、これもこの出版物のトピックを部分的に反映しています。

Android用のアプリケーションを開発している場合、ほとんどの場合、データをどこかに保存する必要があります。 クラウドサービスの1つを選択する(この場合はSyncAdapterを使用すると便利です )か、組み込みのSQLiteデータベースを使用できます。 2番目のケースでは、コンテンツプロバイダー(複数のアプリケーションでデータを使用する場合)またはORMを使用してSQLクエリを記録するかを選択する必要があります。

この投稿では、アプリケーションで使用できるAndroid ORMのいくつかを見ていきます。

オームライト


おそらく、これが頭に浮かぶ最初のORMです。 ただし、これはAndroid ORMではなく、SQLデータベースをサポートするJava ORMです。 JDBC接続Spring、 Androidなど、Javaが使用されるあらゆる場所で使用できます。
ここでは、テーブルを定義する各クラスの@DatabaseFieldや、クラスの各フィールドの@DatabaseFieldなど、アノテーションが積極的に使用されています。
OrmLiteを使用してテーブルを定義する簡単な例:

 @DatabaseTable(tableName = "users") public class User { @DatabaseField(id = true) private String username; @DatabaseField private String password; public User() { // ORMLite needs a no-arg constructor } public User(String username, String password) { this.username = username; this.password = password; } // Implementing getter and setter methods public String getUserame() { return this.username; } public void setName(String username) { this.username = username; } public String getPassword() { return this.password; } public void setPassword(String password) { this.password = password; } } 


これはオープンソースプロジェクトであり、 GitHubで見つけることができます。 詳細については、公式ドキュメントを参照してください。

シュガーオーム


このORMは、Android専用に作成されました。 キットには、覚えやすく覚えやすいAPIが付属しています。 彼は必要なテーブルを自分で作成でき、1対1および1対多の関係を形成するための簡単な方法が含まれています。 また、SugarORMを使用すると、 save()delete() find() (またはfindById() )の3つの関数だけで、作成、読み取り、更新、削除(CRUD)を簡単に行うことができます。
アプリケーションでSugarORMを使用するには、 AndroidManifest.xml 4つのmeta-dataを追加する必要があります。

 <meta-data android:name="DATABASE" android:value="my_database.db" /> <meta-data android:name="VERSION" android:value="1" /> <meta-data android:name="QUERY_LOG" android:value="true" /> <meta-data android:name="DOMAIN_PACKAGE_NAME" android:value="com.my-domain" /> 


これで、テーブルに変換するクラスでこのORMを使用できます。

 public class User extends SugarRecord<User> { String username; String password; int age; @Ignore String bio; //this will be ignored by SugarORM public User() { } public User(String username, String password,int age){ this.username = username; this.password = password; this.age = age; } } 


新しいユーザーの追加:

 User johndoe = new User(getContext(),"john.doe","secret",19); johndoe.save(); //stores the new user into the database 


19歳のすべてのユーザーの削除:

 List<User> nineteens = User.find(User.class,"age = ?",new int[]{19}); foreach(user in nineteens) { user.delete(); } 


SugarORMの機能の詳細については、 ドキュメントをご覧ください。

グリーンダオ


高性能が必要な場合は、必ずGreenDAOをご覧ください 。 彼らのウェブサイトで述べられているように、「ほとんどのエンティティは、 毎秒数千の操作のスループットで追加、更新、またはダウンロードできます。」 そして、著者が彼らの子孫の能力についてcしていたら、これらの有名なアプリケーションではほとんど使用されていなかったでしょう。 同じOrmLiteと比較して、GreenDAOはほぼ4.5倍高速です。



サイズは100 Kbの最小であり、実際には問題ではありません。
GreenStudioの使用例は、Android Studioを使用したチュートリアルで見ることができます。 希望する人は、 GitHubのプロジェクトコードに精通し、 ドキュメントを調べることもできます

ActiveAndroid


他の多くのORMと同様に、 ActiveAndroidは、SQLクエリを作成せずにSQLiteからレコードを保存および取得するのに役立ちます。

ActiveAndroidを使用するには、jarファイルを/libsフォルダーに追加する必要があります。 最初の手順で述べたように、 GitHubからソースコードをコピーし、 Mavenを使用しコンパイルする必要があります。 ActiveAndroidをプロジェクトに接続した後、 meta-dataタグをAndroidManifest.xml追加します。

 <meta-data android:name="AA_DB_NAME" android:value="my_database.db" /> <meta-data android:name="AA_DB_VERSION" android:value="1" /> 


その後、必要に応じてActiveAndroid.initialize()呼び出すことができます。
 public class MyActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ActiveAndroid.initialize(this); //rest of the app } } 


これで、アノテーションを使用して、Javaクラスとしてモデルを作成できます。

 @Table(name = "User") public class User extends Model { @Column(name = "username") public String username; @Column(name = "password") public String password; public User() { super(); } public User(String username,String password) { super(); this.username = username; this.password = password; } } 


これはActiveAndroidの簡単な使用例です。より複雑な使用方法については、プロジェクトのドキュメントをご覧ください。

レルム


レビューの最後のORMであるRealmは C ++で記述されており、デバイス上で(解釈なしに)実行され、非常に高いパフォーマンスを提供します。 iOSのバージョンコードは、興味のある方はGitHubにあります 。 また、Objective-CおよびSwiftでRealmを使用するオフラインの例を見つけることもできます。

おわりに


もちろん、これらは自然界に存在する唯一のORMとはほど遠いものです。 このレビューの範囲外は、たとえば、 AndrormORMDroidです。 確かに、すべての開発者はSQLを使用できるはずですが、クエリの作成は退屈で面倒なので、多くの既製ORMの1つを使用してプロセスを自動化してみませんか? 作業を大幅に簡素化できます。

Source: https://habr.com/ru/post/J242559/


All Articles