-
@ColumnInfo标签可用于设置该字段存储在数据库表中的名字并指定字段的类型。
-
@Ignore标签用来告诉系统忽略该字段或者方法
- Room在项目中的引入,在app的build.gradle中加入room的相关依赖:
implementation “androidx.room:room-runtime:2.2.5”
annotationProcessor “androidx.room:room-compiler:2.2.5”
- 创建学生实体类
@Entity(tableName = “student”)
public class Student {
@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = “id”, typeAffinity = ColumnInfo.INTEGER)
public int id;
@ColumnInfo(name = “name”, typeAffinity = ColumnInfo.TEXT)
public String name;
@ColumnInfo(name = “age”, typeAffinity = ColumnInfo.TEXT)
public String age;
public Student(int id, String name, String age) {
this.id = id;
this.name = name;
this.age = age;
}
@Ignore
public Student(String name, String age) {
this.name = name;
this.age = age;
}
}
- 创建DAO接口
@Dao
public interface StudentDao {
//增加
@Insert
void insertStudent(Student student);
//删除
@Delete
void deleteStudent(Student student);
//更新
@Update
void updateStudent(Student student);
//查询
@Query(“SELECT * FROM student”)
List getStudentList();
@Query(“SELECT * FROM student WHERE id = :id”)
Student getStudentById(int id);
}
- 创建数据库,MyDatabase继承RoomDatabase类