0Pricing
Flutter Mobile Development · บทเรียน

Hive และพื้นที่จัดเก็บภายในแบบ NoSQL

เรียนรู้การใช้ Hive ซึ่งเป็นฐานข้อมูล NoSQL แบบคีย์-ค่าอันรวดเร็วสำหรับ Flutter เพื่อจัดเก็บวัตถุมีโครงสร้างไว้ภายในโดยไม่ใช้ SQL

Hive และพื้นที่จัดเก็บภายในแบบ NoSQL เป็นบทเรียน Flutter Mobile Development ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Flutter Mobile Development และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Flutter Mobile Development มีบทเรียนทั้งหมด 4 บทเรียน

บางส่วนของบทเรียนนี้ยังไม่ได้รับการแปล และแสดงเป็นภาษาอังกฤษ

Why Hive?

Hive is a lightweight, pure-Dart key-value database. It is great when SQLite feels heavy and SharedPreferences feels too simple.

  • Very fast reads and writes
  • No native dependencies
  • Stores Dart objects directly

Adding Hive

Add the packages to pubspec.yaml: hive, hive_flutter, and dev dependencies hive_generator and build_runner.

dependencies:
  hive: ^2.2.3
  hive_flutter: ^1.1.0
dev_dependencies:
  hive_generator: ^2.0.1
  build_runner: ^2.4.0

Initializing Hive

Initialize Hive before runApp so the database directory is ready.

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Hive.initFlutter();
  runApp(const MyApp());
}

Boxes

Data lives in a Box — think of it as a typed map persisted to disk. Open one before use.

final box = await Hive.openBox('settings');

Reading & Writing

Use put and get like a map. Values survive app restarts.

box.put('darkMode', true);
final isDark = box.get('darkMode', defaultValue: false);

Storing Custom Objects

To store your own classes, annotate them with @HiveType and each field with @HiveField.

@HiveType(typeId: 0)
class Note extends HiveObject {
  @HiveField(0)
  String title;
  @HiveField(1)
  String body;
  Note(this.title, this.body);
}

Generating Adapters

Run the code generator to create the type adapter, then register it.

// terminal:
// flutter pub run build_runner build

Hive.registerAdapter(NoteAdapter());

Working with a Typed Box

Open a box typed to your class to store and retrieve objects directly.

final notes = await Hive.openBox<Note>('notes');
notes.add(Note('Shopping', 'Milk and eggs'));
final first = notes.getAt(0);

Updating & Deleting

Because a HiveObject remembers its box, you can call save and delete on the object itself.

final note = notes.getAt(0)!;
note.title = 'Updated';
note.save();
note.delete();

Reactive UI with ValueListenable

Hive boxes expose a listenable, so ValueListenableBuilder rebuilds the UI when data changes.

ValueListenableBuilder(
  valueListenable: notes.listenable(),
  builder: (context, Box<Note> box, _) {
    return Text('Notes: ' + box.length.toString());
  },
);

Hive vs SQLite

Choose Hive for simple object/key-value storage and speed. Choose SQLite when you need complex relational queries, joins or aggregations.

Quick Check

What must you do before storing a custom class in a Hive box?

Recap

You learned Hive for local NoSQL storage:

  • initFlutter and boxes
  • put/get key-value access
  • Custom objects with generated adapters
  • Reactive UI via box listenables

Hive gives you fast, structured persistence without SQL.

คำถามที่พบบ่อย

บทเรียน “Hive และพื้นที่จัดเก็บภายในแบบ NoSQL” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “Hive และพื้นที่จัดเก็บภายในแบบ NoSQL” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Flutter Mobile Development ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Flutter Mobile Development มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “Hive และพื้นที่จัดเก็บภายในแบบ NoSQL”

เรียนรู้การใช้ Hive ซึ่งเป็นฐานข้อมูล NoSQL แบบคีย์-ค่าอันรวดเร็วสำหรับ Flutter เพื่อจัดเก็บวัตถุมีโครงสร้างไว้ภายในโดยไม่ใช้ SQL คุณปฏิบัติ Flutter Mobile Development ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Flutter Mobile Development หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Flutter Mobile Development บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “Hive และพื้นที่จัดเก็บภายในแบบ NoSQL” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Flutter Mobile Development นี้ได้ไหม

ได้ บทเรียน Flutter Mobile Development ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. Shared Preferences สำหรับข้อมูล
  2. การผสานรวมฐานข้อมูล SQLite
  3. การดำเนินการกับระบบไฟล์
  4. Hive และพื้นที่จัดเก็บภายในแบบ NoSQL
← กลับไปที่ Flutter Mobile Development