Sign In
공부 내용

flutter - hive(로컬 저장소 NoSQL)

Y
yeji Kim

참고 자료

dependencies: hive: ^2.2.3 hive_flutter: ^1.1.0 dev_dependencies: build_runner: ^2.4.7 hive_generator: ^2.0.1
await Hive.initFlutter(); void main() async { await Hive.initFlutter(); runApp(const MyApp()); }
await Hive.openBox("openBox"); Hive.openLazyBox("openBox"); Hive.openBox("person"); Box box = Hive.box("person"); box.put("name", "tyger"); box.put("age", 20); box.add("tyger1"); print(box.values); // (tyger1, 20, tyger) print(box.keys); // (0, age, name) print(box.get("name")); // tyger print(box.get("age")); // 20 print(box.get("birthday", defaultValue: 20230101)); // 20230101 Box box = Hive.box("person"); box.deleteAll(["name", "age"]); Box box = Hive.box("person"); box.put("name", "tyger"); print(box.get("name")); // tyger
Box box = Hive.box("person"); box.put("person", { "name": "tyger", "age": 20, }); final person = box.get("person"); print(person); print(person["name"]); // {name: tyger, age: 20} // tyger box.putAll({ "person1": { "name": "tyger1", "age": 30, }, "person2": { "name": "tyger2", "age": 40, }, }); print(box.values); // {name: tyger, age: 20}, {name: tyger1, age: 30}, {name: tyger2, age: 40} List<dynamic> query = box.values.where((e) => e["age"] == 30).toList(); print(query); // [{name: tyger1, age: 30}]
part 'car.g.dart'; @HiveType(typeId: 1) class Car { @HiveField(0) int number; @HiveField(1) Brand type; @HiveField(2) String name; @HiveField(3) List<String> colors; @HiveField(4) bool isRoof; Car({ required this.number, required this.brand, required this.name, required this.colors, required this.isRoof, }); @override String toString() => "Car(number: $number, brand: $brand, name: $name, colors: $colors, isRoof: $isRoof)"; } Hive.registerAdapter(CarAdapter()); Box box = Hive.box("car_factory"); box.addAll(cars); print(box.values);
ValueListenableBuilder<Box>( valueListenable: Hive.box("car_factory").listenable(), builder: (BuildContext context, Box value, Widget? child) { ... }),
Subscribe to '아무튼-작업일지'
Subscribe to my site to be the first to receive notifications and emails about the latest updates, including new posts.
Join Slashpage and subscribe to '아무튼-작업일지'!
Subscribe
👍