Drift 라이브러리란?
- Flutter 에서 사용하는 ORM이다.
사용 방법
model 생성
- RDB 에서 테이블을 정의하는 것과 동치인 코드이다.
- 마지막에
()
를 한번 더 불러 정의의 끝을 명시한다.
import 'package:drift/drift.dart';
class Schedule extends Table {
IntColumn get id => integer().autoIncrement()(); // Primary key, 정수, 열
TextColumn get content => text()();
DateTimeColumn get date => dateTime()();
IntColumn get startTime => integer()();
IntColumn get endTime => integer()();
}
database 파일 생성
- 아래에서
part
라는 것으로 파일을 지정하는데,import
와 비슷한 것이다.- 차이는
private
값들도 사용할 수 있다는 것이다.
- 차이는
import 'package:calendar_scheduler/model/schedule.dart';
import 'package:drift/drift.dart';
part 'drift_database.g.dart'; // part 파일 지정
@DriftDatabase(
tables: [
Schedule,
],
)
class LocalDatabase extends _$LocalDatabase {
LocalDatabase(super.e);
@override
// TODO: implement schemaVersion
int get schemaVersion => throw UnimplementedError();
}
flutter pub run build_runner build
실행
flutter pub run build_runner build
명령어를 실행해야drift_database.g.part
파일이 생성된다.- 해당 파일 안에는 상세한 테이블 정의가 들어있다.
레퍼런스
- DART 공식문서
- DRIFT 공식문서
- 코드팩토리의 플러터 프로그래밍
반응형
'플러터' 카테고리의 다른 글
플러터(Flutter) 에서 자주 쓰는 GetIt 패키지란? (0) | 2023.12.07 |
---|---|
플러터(Flutter) 의 글로벌 키(GlobalKey) 클래스란? (0) | 2023.12.06 |
플러터 (Flutter) 의 initializeDateFormatting() 메서드의 역할과 사용법 (0) | 2023.12.03 |
플러터(Flutter) 의 WidgetsFlutterBinding.ensureInitializing() 이란? (0) | 2023.12.02 |
안드로이드 스튜디오 에뮬레이터 인식 안됨 (Device emulator-5554 is offline) 문제 해결 (0) | 2023.12.02 |