ORMラッパーDBFlow v3.0-beta1の使い方
ORMラッパーDBFlow v3.0-beta1の使い方
インストール
1.gradleの設定
TOPレベルのbuild.gradleのdependenciesに
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'を追加
allprojectsのrepositoriesに maven { url "https://jitpack.io" }を追加
アプリレベルのbuild.gradleで
apply plugin: 'com.android.application'の下に
apply plugin: 'com.neenbedankt.android-apt'を追加
dependenciesに下記を追加
apt 'com.github.Raizlabs.DBFlow:dbflow-processor:3.0.0-beta1'
compile "com.github.Raizlabs.DBFlow:dbflow-core:3.0.0-beta1"
compile "com.github.Raizlabs.DBFlow:dbflow:3.0.0-beta1"
2.Applicationを継承したExampleApplicationクラスを作成
例としてAlertApplicationクラスを作成。
ここでDBを初期化
package {your package}.alert;
import android.app.Application;
import com.raizlabs.android.dbflow.config.FlowManager;
/**
* アプリケーションクラス
*/
public class AlertApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
FlowManager.init(this);
}
}
3.作成したapplicationクラスをmanifest.xmlに追加
<application
android:allowBackup="true"
・・・・
android:name="{your package}.AlertApplication">
4.DBの作成
DB名、versionを指定しDBを作成する。
import com.raizlabs.android.dbflow.annotation.Database;
/**
* Alert DB
*/
@Database(name = AlertDb.NAME, version = AlertDb.VERSION, generatedClassSeparator = "_")
public class AlertDb {
public static final String NAME = "AlertDb";
public static final int VERSION = 1;
}
5.BaseModelを継承しテーブルを作成
import com.raizlabs.android.dbflow.annotation.Column;
import com.raizlabs.android.dbflow.annotation.PrimaryKey;
import com.raizlabs.android.dbflow.annotation.Table;
import com.raizlabs.android.dbflow.structure.BaseModel;
/**
* 宛先テーブル
*/
@Table(database = AlertDb.class)
public class Recipient extends BaseModel {
@PrimaryKey(autoincrement = true)
public long id;
@Column
public String name;
@Column
public String email;
@Column
public Integer is_delivery;
}
6.レコードの取得とインサートメソッドの作成
import android.util.Log;
import com.lilly.happylife.alert.model.Recipient;
import com.lilly.happylife.alert.model.Recipient_Table;
import com.raizlabs.android.dbflow.sql.language.SQLite;
/**
* 宛先リポジトリ
*/
public class RecipientRepository {
/**
* Recipientテーブルにインサート
*
* @param String name 氏名
* @param String email メールアドレス
*/
public void insert(String name, String email) {
Recipient recipient = new Recipient();
recipient.name = name;
recipient.email = email;
recipient.is_delivery = 1;
recipient.save();
}
/**
* プライマリーキーで宛先テーブルを検索して取得
*
* @param Long _id ID
*
* @return Recipient recipient Recipientオブジェクト
*/
public Recipient getRecipient(Long id) {
Recipient recipient = SQLite.select().from(Recipient.class)
.where(Recipient_Table.id.eq(id)).and(Recipient_Table.is_delivery.eq(1)).querySingle();
String query = SQLite.select().from(Recipient.class)
.where(Recipient_Table.id.eq(id)).and(Recipient_Table.is_delivery.eq(1)).getQuery();
Log.d("DbQuery", query);
return recipient;
}
}
インサートはサーバサイドのORMと同じような感じで使える
取得は最初の条件はwhereを使い次からはandメソッド
fromメソッドにテーブルのクラスファイルを指定
カラムを条件に使うときはテーブル_Tableのstaticプロパティを使う
実行したクエリはgetQueryで取得
もちろん書いていないが、生SQLもできる
このDBFlowはサーバサイドで使用していたORMラッパーに近い。
楽!!!
Recipient_Table(確認したほうが良い!!!)はコンパイルした後にRecipient.classと同じ階層に自動生成される。
Recipient_Adapter、Recipient_Containerも自動生成される。
Author And Source
この問題について(ORMラッパーDBFlow v3.0-beta1の使い方), 我々は、より多くの情報をここで見つけました https://qiita.com/kiiimiis/items/603524744f312a24e3f0著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .