Jetpack学习之Room

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);

    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。