Professional Documents
Culture Documents
APP DEVELOPMENT
DBFlow
DBFlow
Annotation based ORM
Fast, powerful and simple
Adding support
build.gradle (root)
buildscript {
repositories {
// required for this library, don't use mavenCentral()
jcenter()
}
dependencies {
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
}
}
allProjects {
repositories {
maven { url "https://jitpack.io" }
}
}
Adding support
build.gradle (app)
apply plugin: 'com.neenbedankt.android-apt'
dependencies {
apt "com.github.Raizlabs.DBFlow:dbflow-processor:${dbflow_version}"
compile "com.github.Raizlabs.DBFlow:dbflow-core:${dbflow_version}"
compile "com.github.Raizlabs.DBFlow:dbflow:${dbflow_version}"
compile "com.github.Raizlabs.DBFlow:dbflow-sqlcipher:${dbflow_version}"
}
Initialize and define DB
public class ExampleApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
FlowManager.init(this);
}
}
@Column
String name;
}
Table with association
@Table(database = ColonyDatabase.class)
public class Ant extends BaseModel {
@PrimaryKey(autoincrement = true)
long id;
@Column
String type;
@Column
boolean isMale;
@ForeignKey(saveForeignKeyModel = false)
ForeignKeyContainer<Queen> queenForeignKeyContainer;
}
Setting up association
@Table(database = ColonyDatabase.class)
public class Ant extends BaseModel {
...
public void associateQueen(Queen queen) {
queenForeignKeyContainer =
FlowManager.getContainerAdapter(Queen.class).toForeignKeyContainer(
queen);
}
}
Setting up association
@ModelContainer
@Table(database = ColonyDatabase.class)
public class Queen extends BaseModel {
...
// needs to be accessible for DELETE
List<Ant> ants;
• https://github.com/Raizlabs/AndroidDatabaseLibraryComparison