第一步:添加Room库依赖
dependencies {
implementation 'android.arch.persistence.room:runtime:1.1.1'
annotationProcessor 'android.arch.persistence.room:compiler:1.1.1'
}
第二步:
@Dao
public interface phoneDao {
@Insert
void insert(phoneEntity... phoneEntities);
@Delete
void delete(phoneEntity... phoneEntities);
@Update
void update(phoneEntity... phoneEntities);
@Query("SELECT * FROM phone_table")
List<phoneEntity> getAllUsers();
}
@Entity(tableName = "phone_table")
public class phoneEntity {
interface Column{
String ID = "id";
String NAME = "name";
String MEMORY = "memory";
}
@ColumnInfo(name = Column.ID)
@PrimaryKey(autoGenerate = true)
private String id;
@ColumnInfo(name = Column.NAME)
private String name;
@ColumnInfo(name = Column.MEMORY)
private String memory;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getMemory() {
return memory;
}
public void setMemory(String memory) {
this.memory = memory;
}
}
@Database(entities = {phoneEntity.class}, version = 1)
public abstract class PhoneDatabase extends RoomDatabase {
private static final String PHONE_DATABASE_NAME = "phone.db";
public static volatile PhoneDatabase mPhoneDatabase;
public static PhoneDatabase getInstance(){
if (mPhoneDatabase == null) {
synchronized (PhoneDatabase.class){
if (mPhoneDatabase == null) {
Context context = PhoneApplication.getContext();
mPhoneDatabase = Room.databaseBuilder(context, PhoneDatabase.class,PHONE_DATABASE_NAME)
.allowMainThreadQueries()
.build();
}
}
}
return mPhoneDatabase;
}
public abstract phoneDao getPhoneDao();
}
第三步:使用
public class MainActivity extends AppCompatActivity {
private phoneEntity phone;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.add).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
phone = new phoneEntity();
phone.setMemory("128");
phone.setName("iphone");
PhoneDatabase.getInstance().getPhoneDao().insert(phone);
}
});
findViewById(R.id.delete).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
PhoneDatabase.getInstance().getPhoneDao().delete(phone);
}
});
findViewById(R.id.query).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
List<phoneEntity> phoneEntities = PhoneDatabase.getInstance().getPhoneDao().getAllUsers();
}
});
}