[flutter] 플러터 objectbox에서 데이터를 추가하는 방법은?
ObjectBox는 Dart 언어로 작성된 데이터베이스 관리 라이브러리로, Flutter 애플리케이션에서 데이터를 지속적으로 저장하고 사용할 수 있도록 도와줍니다. 데이터를 추가하는 방법은 다음과 같습니다.
- ObjectBox 라이브러리를 프로젝트에 추가합니다.
pubspec.yaml
파일에 다음과 같이 의존성을 추가합니다:
dependencies:
objectbox: ^1.6.0
- 데이터 모델 클래스를 생성합니다. 예를 들어, 사용자(User) 클래스를 생성해보겠습니다:
import 'package:objectbox/objectbox.dart';
@Entity()
class User {
int id;
// 필드에 @Id() 어노테이션을 사용하여 고유 식별자로 설정합니다.
@Id()
int objectId;
String name;
int age;
User({
this.objectId,
this.name,
this.age,
});
}
- 데이터를 추가하려는 장소에서 ObjectBox 데이터베이스를 열고 트랜잭션을 시작합니다. 그리고 데이터를 생성한 후, 해당 트랜잭션에 추가합니다. 예를 들어, 사용자를 추가하는 함수는 다음과 같이 작성할 수 있습니다:
import 'package:objectbox/objectbox.dart';
import 'package:<your_project>/objectbox.g.dart'; // ObjectBox 코드 생성 파일
Future<void> addUser(String name, int age) async {
final store = Store(getObjectBoxModel());
final box = Box<User>(store);
// ObjectBox 트랜잭션 시작
final txn = store.box<User>().tx;
try {
// 데이터 생성
final user = User(
name: name,
age: age,
);
// 트랜잭션에 데이터 추가
txn.put(user);
// 트랜잭션 커밋
txn.commit();
print('사용자가 추가되었습니다.');
} finally {
txn.close();
store.close();
}
}
위의 예제에서 getObjectBoxModel()
은 ObjectBox에서 코드 생성을 위해 필요한 파일입니다. 이 파일은 ObjectBox 컴파일러에서 생성되며, 프로젝트 루트 디렉토리에 objectbox.g.dart
와 같은 이름으로 저장됩니다.
위의 코드를 사용하여 ObjectBox에 데이터를 추가할 수 있습니다. 사용자의 이름과 나이를 인자로 받아 새로운 사용자를 생성하고, 트랜잭션을 통해 ObjectBox에 추가합니다.
참고 자료:
- ObjectBox 공식 문서: https://docs.objectbox.io/flutter/