今天会介绍Android里的Room资料库中的类别有
建立资料库的表格
//@Entity标注用来表示资料库的表格,并且tableName设置表格名称
@Entity(tableName = "MyUser")
public class User {
//@PrimaryKey标示这是一个主键,其属性autoGenerate设置是否使ID自动累加
@PrimaryKey(autoGenerate = true)
private int id;
private String name;
private String phone;
private String hobby;
public User( String name, String phone, String hobby) {
this.name = name;
this.phone = phone;
this.hobby = hobby;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getHobby() {
return hobby;
}
public void setHobby(String hobby) {
this.hobby = hobby;
}
}
DAO是设置SQL语法的地方,里面包含了最常见的 CURD(Create, Update, Read, Delete)方法。
public interface UserDao {
String tableName="MyUser";
//新增所有资料
@Insert(onConflict = OnConflictStrategy.REPLACE)//预设万一执行出错时,REPLACE为覆盖
void insertData(User player);
//捞取全部资料
@Query("SELECT * FROM "+ tableName)
List<User> getAllUsers();
//更新资料
@Update
void updateData(User player);
//删除资料
@Query(" DELETE FROM " + tableName + " WHERE id = :id")
void deleteData(int id);
}
在此可以使用@Insert、@Update、@Delete以及@Query等SQL语法。
继承RoomDatabase,并建立abstract class的资料库
//@Database的entities:之前创建的data.class,version:资料库版本,exportSchema:是否将资料导出至文件
@Database(entities = { User.class }, version = 1, exportSchema = false)
public abstract class UserDataBase extends RoomDatabase {
private static final String DB_NAME ="UserDataBase.db";//资料库名称
private static volatile UserDataBase instance;
//使用synchronized能够确保在同一个时间只有一个 Thread 进入UserDataBase
public static synchronized UserDataBase getInstance( Context context){
if (instance == null) {
instance = create(context);//创立新的资料库
}
return instance;
}
private static UserDataBase create(final Context context){
return Room.databaseBuilder(context,UserDataBase.class,DB_NAME).build();
}
public abstract UserDao getUserDao();//创建DAO的抽象类
}
介绍Room资料库三种类别就到此,谢谢大家。
上次教到新的容器叫做集合,那听到这个名称有没有想起来在高中时期的数学也有学过集合呢?那时候教到的交集...
今日目标 限制帧数 Framerate Independent 设计错误 这个是我再次参考Game ...
安装 Exposed 框架完成之後,再来我们要和资料库进行串接。 首先我们将原本的 main(){}...
component传递的最後一个招,前面示范了由内传到外、外传到内...等,但是子元件的子元件的子元...
昨天打完程序码後,出现下面的Bug: Assets/LineRendererSetting.cs(5...