在 Android Room 中,可以使用 @PrimaryKey(autoGenerate = true)
注解来自动生成一个递增的序列计数。以下是一个完整的示例:
首先,在实体类中添加一个带有 @PrimaryKey(autoGenerate = true)
注解的字段,用于表示需要自动生成的序列计数:
@Entity(tableName = "users")
public class User {
@PrimaryKey(autoGenerate = true)
private int id;
private String name;
// 其他属性和方法...
// getter 和 setter 方法...
}
然后,在数据库访问对象(Dao)中,使用 @Insert
注解的 Long
返回类型,可以获取到插入记录的自动生成的主键值:
@Dao
public interface UserDao {
@Insert
Long insert(User user);
// 其他操作方法...
}
接下来,可以在应用程序的逻辑部分使用这些代码:
User user = new User();
user.setName("John Doe");
Long id = userDao.insert(user);
if (id != null) {
Log.d(TAG, "Inserted user with id: " + id);
}
在这个示例中,当调用 userDao.insert(user)
方法时,Room 将自动生成一个唯一的序列计数,并将其赋值给 id
变量。如果插入成功,id
将不为 null,并且可以在日志中打印出来。
这样,Android Room 就能够自动生成一个序列计数了。
上一篇:Android Room Repository - 获取用户
下一篇:Android Room RxJava UndeliverableException可以翻译为“Android Room RxJava不可传递异常”。