Android Jetpack - Room基本使用

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 注解来指定字段名为 nameage

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 的用法,请参考官方文档。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值