gpt4 book ai didi

java - 房间数据库实例无法解析 DAO 方法的符号

转载 作者:行者123 更新时间:2023-12-05 06:09:17 25 4
gpt4 key购买 nike

当尝试使用 Room Library 进行数据库处理时,Android Studio 无法解析 MainActivity 中 itemDao() 方法的符号:

db.itemDao().insert(item);

主 Activity .java

public class MainActivity extends AppCompatActivity {

Button btn;
EditText et;
TextView tv;
RoomDatabase db;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

btn = findViewById(R.id.button);
et = findViewById(R.id.editText);
tv = findViewById(R.id.textView);

db = MyDatabase.getInstance(this);

btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Item item = new Item();
item.info = et.getText().toString();
tv.setText(item.info);
db.itemDao().insert(item);
}
});
}
}

项目.java

@Entity(tableName = "tableItems")
public class Item {
@PrimaryKey(autoGenerate = true)
public int uid;

@ColumnInfo(name = "info")
public String info;
}

ItemDao.java

@Dao
public interface ItemDao {
@Query("SELECT * FROM tableItems")
List<Item> getItemsList();

@Insert
void insert(Item item);

@Delete
void delete(Item item);
}

我的数据库.java

@Database(entities = {Item.class}, version = 1)
public abstract class MyDatabase extends RoomDatabase {

public abstract ItemDao itemDao();
private static MyDatabase INSTANCE;
private static final String DATABASE_NAME = "MyDatabase";

public synchronized static MyDatabase getInstance(Context context) {
if (INSTANCE == null) {
INSTANCE = Room.databaseBuilder(context.getApplicationContext(), MyDatabase.class, DATABASE_NAME)
.allowMainThreadQueries()
.build();
}
return INSTANCE;
}
}

最佳答案

您的 dbRoomDatabase 类型。 RoomDatabase 没有 itemDao() 方法,您的 MyDatabase 扩展它有。因此,如果您希望能够访问 itemDao()

,则此字段应为 MyDatabase 类型

关于java - 房间数据库实例无法解析 DAO 方法的符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64884063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com