MainActivity.java
public class MainActivity extends AppCompatActivity {
private Connection connection;
public FoodDao mFoodDao;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
DataBase database = Room.databaseBuilder(getApplicationContext(), DataBase.class, "food_db")
.fallbackToDestructiveMigration()
.allowMainThreadQueries()
.build();
mFoodDao = database.foodDao();
List<Food> foodList = mFoodDao.getFoodAll();
for (int i = 0; i < foodList.size(); i++) {
Log.d("TEST", foodList.get(i).getName() + "\n"
+ foodList.get(i).getSpicy() + "\n"
+ foodList.get(i).getSoup() + "\n"
+ foodList.get(i).getRice() + "\n"
+ foodList.get(i).getNoodle() + "\n"
+ foodList.get(i).getOily() + "\n"
+ foodList.get(i).getBread() + "\n"
+ foodList.get(i).getHungry() + "\n");
}
}
}
Dao.java
@Dao
interface FoodDao {
@Insert
void setInsertFood(Food food);
@Update
void setUpdateFood(Food food);
@Delete
void setDeleteFood(Food food);
@Query("SELECT * FROM Food")
List<Food> getFoodAll();
}
DataBase.java
@Database(entities = {Food.class}, version = 1)
public abstract class DataBase extends RoomDatabase {
public abstract FoodDao foodDao();
}
안드로이드를 자바 언어로 구현 중인데 어딜 찾아봐도 mainactivity가 아닌 다른 클래스에서 디비 내용 활용하는 방법을 못찾았어요. mFoodDao를 public으로 해보고 다른 클래스에서 사용하려고 해봐도 다른 클래스에서 조회를 해보면 로그캣에 테스트값이 출력되지 않아요. 데이터베이스에 값은 insert가 다 되어있구요.
Dao에서 @Query()를 통해 저장된 값을 다른 클래스에서 사용하는 방법좀 알려주시면 감사드립니다!