Room 数据库的增删改查
95369647-FAA9-462b-806A-A3AAE165C813.png
@Entity
public class Person {
@PrimaryKey(autoGenerate = true)
private int id;
@ColumnInfo(name = "name")
private String name;
@ColumnInfo(name = "age")
private int age;
public Person() {
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
@Dao
public interface PersonDao {
@Insert
void insertPerson(Person... people);
@Update
void updatePerson(Person... people);
@Delete
void deletePerson(Person... people);
//删除所有
@Query("DELETE FROM person")
void deleteAllPerson();
//查询所有,desc降序排列
// @Query("SELECT * FROM person ORDER BY id DESC")
@Query("SELECT * FROM person ORDER BY id")
List<Person> getAllPerson();
//根据id查询
@Query("SELECT * FROM person WHERE id=(:userid)")
List<Person> getPerson(int userid);
}
@Database(entities = {Person.class}, version = 1, exportSchema = false)
public abstract class PersonDatabase extends RoomDatabase {
//创建数据库很耗时间
private static PersonDatabase instance;
public static PersonDatabase getInstance(Context context) {
if(null==instance){
synchronized (PersonDatabase.class){
if(null==instance){
instance= Room.databaseBuilder(context.getApplicationContext(),
PersonDatabase.class,"person_database")
.allowMainThreadQueries()
.build();
}
}
}
return instance;
}
public abstract PersonDao getPersonDao();
}
btnAdd.setOnClickListener(v -> {
Person person = new Person("张三", 20);
Person person2 = new Person("李四", 30);
personDao.insertPerson(person,person2);
});
btnDelete.setOnClickListener(v -> {
Person person = new Person();
person.setId(2);
personDao.deletePerson(person);
});
btnUpdate.setOnClickListener(v -> {
Person person = new Person("刘德华", 50);
person.setId(6);
personDao.updatePerson(person);
});
btnQuery.setOnClickListener(v -> {
getPersonInfo();
});
btnQueryAll.setOnClickListener(v -> {
getAllPerson();
});
btnDeleteAll.setOnClickListener(v -> {
personDao.deleteAllPerson();
});
}
void getAllPerson() {
List<Person> personList = personDao.getAllPerson();
String msg = "";
for (Person person : personList) {
msg += person.getName() + "--" + person.getAge() + "\n";
}
tvMsg.setText(msg);
}
//条件查询
void getPersonInfo() {
List<Person> personList = personDao.getPerson(6);
String msg = "";
for (Person person : personList) {
msg += person.getName() + "--" + person.getAge() + "\n";
}
tvMsg.setText(msg);
}