📅  最后修改于: 2023-12-03 15:13:22.421000             🧑  作者: Mango
Room是谷歌推出的一款基于SQLite的ORM框架,使用它可以帮助我们更加便捷地访问SQLite数据库。
在项目的build.gradle文件中,添加如下依赖:
implementation "android.arch.persistence.room:runtime:2.3.0"
annotationProcessor "android.arch.persistence.room:compiler:2.3.0"
Entity是Room中与数据库表对应的类,可以通过@Entity注解来创建一个Entity。
@Entity(tableName = "person")
public class Person {
@PrimaryKey(autoGenerate = true)
private int id;
private String name;
// getter and setter
}
Dao(Data Access Object)是Room中用来定义各种数据库访问方法的接口,也需要使用注解来生成具体的实现类。
@Dao
public interface PersonDao {
@Query("SELECT * FROM person")
List<Person> getAll();
@Insert
void insertAll(Person... persons);
@Delete
void delete(Person person);
}
Database是Room中与数据库的连接,需要继承RoomDatabase类,并在类中声明一个或多个用于获取Dao实例的抽象方法。
@Database(entities = {Person.class}, version = 1)
public abstract class AppDatabase extends RoomDatabase {
public abstract PersonDao personDao();
}
在Application或者其他入口处,通过调用Room.databaseBuilder()的方式来初始化一个Database实例。
AppDatabase db = Room.databaseBuilder(getApplicationContext(),
AppDatabase.class, "database-name").build();
通过获取Database实例,然后再通过Dao的相关方法,即可完成数据库的访问操作。
PersonDao personDao = db.personDao();
List<Person> persons = personDao.getAll();