استفاده از SQLite در فلاتر برای ذخیره داده‌ها

SQLite یکی از پرکاربردترین سیستم‌های مدیریت پایگاه داده سبک و بدون نیاز به سرور است که به دلیل سادگی و کارایی، انتخاب مناسبی برای اپلیکیشن‌های موبایل محسوب می‌شود. فلاتر نیز با ارائه پکیج sqflite امکان تعامل آسان با SQLite را فراهم کرده است. در این مقاله، نحوه استفاده از SQLite در پروژه‌های فلاتر را مرحله به مرحله توضیح می‌دهیم.

نصب پکیج sqflite

برای شروع، باید پکیج sqflite را به پروژه خود اضافه کنید. این کار با افزودن خط زیر به فایل pubspec.yaml انجام می‌شود:

dependencies:
  sqflite: ^2.0.0
  path: ^1.8.0

پس از ذخیره فایل، دستور flutter pub get را اجرا کنید تا پکیج نصب شود.

ایجاد و راه‌اندازی پایگاه داده

برای ایجاد پایگاه داده، ابتدا باید مسیر فایل پایگاه داده را مشخص کنید. سپس با استفاده از متد openDatabase آن را ایجاد یا باز کنید:

import 'package:sqflite/sqflite.dart';
import 'package:path/path.dart';

Future initDatabase() async {
  final dbPath = await getDatabasesPath();
  final path = join(dbPath, 'app_database.db');

  return openDatabase(
    path,
    version: 1,
    onCreate: (db, version) {
      db.execute('CREATE TABLE users(id INTEGER PRIMARY KEY, name TEXT, age INTEGER)');
    },
  );
}

این کد یک پایگاه داده با جدول users شامل سه ستون ایجاد می‌کند.

عملیات CRUD (ایجاد، خواندن، بروزرسانی، حذف)

در ادامه نحوه انجام عملیات مختلف بر روی جدول توضیح داده شده است:

ایجاد (Insert)

Future insertUser(Database db, Map user) async {
  await db.insert('users', user);
}

خواندن (Query)

Future>> getUsers(Database db) async {
  return await db.query('users');
}

بروزرسانی (Update)

Future updateUser(Database db, int id, Map user) async {
  await db.update('users', user, where: 'id = ?', whereArgs: [id]);
}

حذف (Delete)

Future deleteUser(Database db, int id) async {
  await db.delete('users', where: 'id = ?', whereArgs: [id]);
}

نتیجه‌گیری

با استفاده از SQLite و پکیج sqflite در فلاتر می‌توانید به راحتی داده‌ها را در اپلیکیشن‌های خود مدیریت کنید. این روش مناسب برای ذخیره‌سازی اطلاعات کاربران، تنظیمات اپلیکیشن و سایر اطلاعات محلی است.

اگر سوالی یا مشکلی داشتید، آن را در بخش نظرات مطرح کنید!