[flutter] 플러터 objectbox에서 데이터를 추가하는 방법은?

ObjectBox는 Dart 언어로 작성된 데이터베이스 관리 라이브러리로, Flutter 애플리케이션에서 데이터를 지속적으로 저장하고 사용할 수 있도록 도와줍니다. 데이터를 추가하는 방법은 다음과 같습니다.

  1. ObjectBox 라이브러리를 프로젝트에 추가합니다. pubspec.yaml 파일에 다음과 같이 의존성을 추가합니다:
dependencies:
  objectbox: ^1.6.0
  1. 데이터 모델 클래스를 생성합니다. 예를 들어, 사용자(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,
  });
}
  1. 데이터를 추가하려는 장소에서 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에 추가합니다.

참고 자료: