1.添加依赖
在 build.gradle
文件中添加以下依赖:
implementation 'androidx.room:room-runtime:2.3.0'
annotationProcessor 'androidx.room:room-compiler:2.3.0'
2.创建实体类
创建一个实体类来表示数据库中的一个表。在实体类中,我们可以使用注解来指定表名、字段名等信息。
@Entity(tableName = "users")
public class User {
@PrimaryKey
public int id;
@ColumnInfo(name = "name")
public String name;
@ColumnInfo(name = "age")
public int age;
}
在上面的代码中,我们使用 @Entity
注解来指定表名为 users
,使用 @PrimaryKey
注解来指定主键字段为 id
,使用 @ColumnInfo
注解来指定字段名为 name
和 age
。
3.创建 DAO 接口
创建一个 DAO 接口来定义数据库操作。在 DAO 接口中,我们可以使用注解来指定查询语句、插入语句等信息。
@Dao
public interface UserDao {
@Query("SELECT * FROM users")
LiveData<List<User>> getAll();
@Query("SELECT * FROM users WHERE id = :id")
LiveData<User> getById(int id);
@Insert
void insert(User user);
@Delete
void delete(User user);
}
在上面的代码中,我们使用 @Dao
注解来指定该接口是一个 DAO 接口,使用 @Query
注解来指定查询语句,使用 @Insert
注解来指定插入语句,使用 @Delete
注解来指定删除语句。
4.创建数据库
创建一个 Room 数据库来管理实体类和 DAO 接口。在数据库中,我们可以使用注解来指定数据库名、版本号等信
@Database(entities = {User.class}, version = 1)
public abstract class AppDatabase extends RoomDatabase {
public abstract UserDao userDao();
private static AppDatabase instance;
public static synchronized AppDatabase getInstance(Context context) {
if (instance == null) {
instance = Room.databaseBuilder(context.getApplicationContext(),
AppDatabase.class, "my_database")
.build();
}
return instance;
}
}
在上面的代码中,我们使用 @Database
注解来指定数据库名为 my_database
,使用 entities
参数来指定实体类列表,使用 version
参数来指定数据库版本号。我们还创建了一个名为 userDao()
的抽象方法,用于返回一个 UserDao
接口的实例。
我们还创建了一个名为 getInstance()
的静态方法,用于获取数据库实例。在该方法中,我们使用 Room.databaseBuilder()
方法来创建一个 Room 数据库实例,并指定数据库名为 my_database
。
5.使用数据库
在应用程序中,我们可以使用以下代码来获取数据库实例和 DAO 接口实例:
AppDatabase db = AppDatabase.getInstance(context);
UserDao userDao = db.userDao();
在上面的代码中,我们使用 AppDatabase.getInstance()
方法来获取数据库实例,然后使用 userDao()
方法来获取 UserDao
接口实例。我们可以使用该实例来进行数据库操作,例如查询、插入、删除等操作。
这是 Room 的基本用法,不同的应用场景可能需要使用更多的注解和方法。要了解更多关于 Room 的用法,请参考官方文档。