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つを使用してプロセスを自動化してみませんか? 作業を大幅に簡素化できます。



All Articles