我只是对此感到好奇。我刚刚使用过Room,想了解更多信息。查询是否会失败?我正在使用AsyncTask进行插入或查询时..而且我没有任何回调..我只是执行它,然后将其保存..每当我查询时,我都会这样做:
try {
List<Object> objectList = new GetObjectTask.execute().get();
} catch (Exception e) {
e.printStack();
}
这是正确的方法吗?
这是GetObjectTask类
public class GetObjectTask extends AsyncTask<Void, Void, List<Object>> {
public GetObjectTask() {
}
@Override
protected List<Object> doInBackground(Void... voids) {
return AppDatabaseHelper.getInstance().getObjectDao().getAllObject();
}
}
答案 0 :(得分:1)
这是正确的方法吗?
这取决于您的设计。
正确的方法是:
实现一个ViewModel体系结构组件,并让ViewModel处理数据库操作。
由于Room可以返回create table manage_emplyee
(
f_name varchar(20),
l_name varchar(20)
);
// Specification
create or replace package fn2
as
procedure manage_emplyee(v_fname in VARCHAR2, v_lname in VARCHAR2);
procedure manage_emplyee_delete(v_fname in VARCHAR2);
end;
/
create or replace package body fn2
as
--Procedure Implementation
procedure manage_emplyee(v_fname in VARCHAR2, v_lname in VARCHAR2)
is
begin
insert into manage_emplyee VALUES (v_lname, v_lname);
end manage_emplyee;
// body
procedure manage_emplyee_delete (v_fname in VARCHAR2)
is
begin
delete manage_emplyee where v_fname = v_fname;
end manage_emplyee_delete;
end fn2;
/
,因此您可以轻松观察更改并相应地更新视图。为此签出observable queries