[Flutter] drift - (4) 쿼리 생성

Jinno·2023년 1월 13일
0

Flutter

목록 보기
13/19

[insert] createSchedule이라는 이름으로 db에 data를 생성하는 쿼리 함수 작성

  • SchedulesCompanion, schedules는 Schedules Table에 대해서 자동으로 drift_database.g.dart에 자동으로 생성됨
  • into(schedules) 테이블에 insert(data) 들어오는 data를 추가
  • insert를 하면 해당 primary key를 return하게 되며 이를 Future로 받음

[select] DB에서 data를 받아오는 쿼리

  • Future로 한 번에 받아 올 수도 있고
  • Stream으로 순차적으로 받아 올 수도 있음
class LocalDataBase extends _$LocalDataBase {
  LocalDataBase() : super(_openConnection());

  Future<int> createSchedule(SchedulesCompanion data) =>
      into(schedules).insert(data);
  
  Future<int> createCategoryColor(CategoryColorsCompanion data) =>
      into(categoryColors).insert(data);
  
  
  // List로 CategoryColor를 받아오는 함수
  // CategoryColor과 select의 categoryColors는 자동으로 생성된 drift_database.g.dart에 있는 타입
  // drift_database.dart의 CategoryColors가 아님
  // get()은 List로 반환
  // getSingle()은 하나만 반환
  Future<List<CategoryColor>> getCategoryColors() =>
      select(categoryColors).get();

  
  int get schemaVersion => 1;
}
profile
Innovation, 기록용

0개의 댓글