在Android開發中,使用Room框架將數據持久化到本地數據庫時,需要定義實體類。實體類是一個包含數據的Java類,它映射到數據庫中的一張表。以下是如何定義一個實體類的步驟:
@Entity
注解標記它。這個注解告訴Room這個類是一個實體類。import androidx.room.Entity;
import androidx.room.PrimaryKey;
@Entity
public class User {
// ...
}
@PrimaryKey
注解標記它。主鍵是唯一標識表中每一行的字段。import androidx.room.Entity;
import androidx.room.PrimaryKey;
@Entity
public class User {
@PrimaryKey(autoGenerate = true)
private int id;
// ...
}
@ColumnInfo
、@PrimaryKey
、@NonNull
等。import androidx.room.ColumnInfo;
import androidx.room.Entity;
import androidx.room.PrimaryKey;
@Entity
public class User {
@PrimaryKey(autoGenerate = true)
private int id;
@ColumnInfo(name = "name")
private String name;
@ColumnInfo(name = "age")
private int age;
// ...
}
androidx.room.Dao
,并定義訪問數據庫的方法,例如insert()
、delete()
、update()
和query()
。import androidx.room.Dao;
import androidx.room.Insert;
import androidx.room.Query;
@Dao
public interface UserDao {
@Insert
void insert(User user);
@Delete
void delete(User user);
@Update
void update(User user);
@Query("SELECT * FROM User")
List<User> getAllUsers();
}
androidx.room.Database
,并使用@TypeConverters
注解來定義類型轉換器。然后,使用@Database
注解標記這個類,并指定數據庫的名稱。import androidx.room.Database;
import androidx.room.RoomDatabase;
import androidx.room.TypeConverters;
@Database(entities = {User.class}, version = 1)
@TypeConverters({Converters.class})
public abstract class AppDatabase extends RoomDatabase {
public abstract UserDao userDao();
}
現在,你已經定義了一個實體類,并設置了相應的數據訪問對象和數據庫。