Puisque j'ai utilisé une bibliothèque rapide (?) Appelée DBFlow, je vais résumer comment l'installer et l'utiliser. Le contenu sera mis à jour ** de temps en temps **.
L'environnement de développement est le suivant.
Bibliothèque ORM (Object-Relational Mapping) fournie par Raizlabs.
** DBFlow est une bibliothèque qui peut simplifier le traitement autour de la base de données tel que la définition de table en utilisant des annotations ( @ ~ </ code>) **.
Il semble être célèbre pour être rapide dans les rues.
Je me suis référé aux Documents officiels pour l'installation et l'utilisation. Pour installer DBFlow, vous devez ajouter le contenu suivant.
build.gradle
dependencies {
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.7'
}
build.gradle(app)
dependencies {
apt 'com.raizlabs.android:DBFlow-Compiler:2.2.1'
compile "com.raizlabs.android:DBFlow-Core:2.2.1"
compile "com.raizlabs.android:DBFlow:2.2.1"
}
Pour utiliser DBFlow, vous devez préparer quelques nouvelles classes.
Initialisez avec FlowManager.init (this) </ code>.
MyApplication.java
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
FlowManager.init(this);
}
}
Si vous en créez un nouveau, ajoutez la description suivante à la balise d'application d'AndroidManifest.xml.
AndroidManifest.xml
<application
android:name=".MyApplication" />
</application>
AppDatabase.java
@Database(name = AppDatabase.NAME, version = AppDatabase.VERSION)
public class AppDatabase {
public static final String NAME = "AppDatabase";
public static final int VERSION = 1;
}
La colonne doit être @Column </ code> et la clé primaire doit être
@PrimaryKey </ code>.
User.java
@Table(databaseName = AppDatabase.NAME, tableName = "USER_TABLE")
public class User extends BaseModel {
@Column
@PrimaryKey(autoincrement = true)
int id;
@Column(name = "NAME")
public String name;
@Column(name = "AGE")
public int age;
}
User user = new User();
user.name = "takenoki";
user.age = 20;
user.insert();
--Sélectionnez l'instruction
select NAME from USER_TABLE where NAME = "takenoki";
L'instruction SQL ci-dessus est convertie pour DBFlow comme suit.
List<User> list = new Select()
.from(User.class)
.where(Condition.column(User$Table.NAME).is(name))
.queryList();
Dans DBFlow, les clauses utilisées en SQL sont préparées comme des méthodes, et en plus de ce qui précède, distinct (), count (), etc. peuvent également être utilisés. Cette fois, nous obtenons les données avec le même nom, mais si vous voulez obtenir les données avec le même nom et âge, ce sera comme suit.
List<User> list = new Select()
.from(User.class)
.where(
Condition.column(User$Table.NAME).is(name),
Condition.column(User$Table.AGE).is(age)
)
.queryList();
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_sample, container, false);
String name = "takenoki";
int age = 20;
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
act,
android.R.layout.simple_list_item_1
);
List<User> list = new Select()
.from(User.class)
.where(Condition.column(User$Table.USER_NAME).is(name))
.queryList();
for (int i = 0; i < list.size(); i++) {
adapter.add(String.valueOf(list.get(i).age));
}
listView.setAdapter(adapter);
return view;
}
Recommended Posts