CodeBlanks Logo Icon CodeBlanks

Özet - Veritabanı

sqflite, CRUD ve transaction'ı birleştirerek bir kullanıcı veritabanı yazarsın.

Özet - Veritabanı

Bu grupta Dart ile yerel veri tabanı yönetimini öğrendik. sqflite gömülü SQLite sağlar; Database bağlantı nesnesidir; CRUD işlemleri (insert/query/update/delete) veriyi yönetir; transaction atomiklik katar; drift üzerine tip güvenli ORM kurar.

Bu özette sqflite kurulumu ve CRUD işlemini bir araya getireceğiz: bir setupDb fonksiyonu veri tabanı açar ve tablo oluşturur; bir addNote fonksiyonu not ekler. Bu, gerçek bir uygulamanın veri katmanının küçük ama çalışan bir örneğidir.

Uygulama Kurulum ve not ekleme

Aşağıdaki kodda sqflite içe aktarılmış. setupDb() fonksiyonunu tanımla: openDatabase('notes.db') ile aç, db.execute('CREATE TABLE notes (id INTEGER PRIMARY KEY, title TEXT)') ile tablo oluştur ve db döndür. addNote(Database db) fonksiyonunu tanımla: db.insert('notes', {'title': 'Özet not'}) ekle. main içinde print('Özet: sqflite + CRUD'), await setupDb(), await addNote(db), print('Eklendi: Özet not') ve await db.close() çağrılarını ekle.

Başlangıç kodu

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

Future<Database> setupDb() async {
  // notes.db aç, notes tablosunu oluştur, db döndür
}

Future<void> addNote(Database db) async {
  // bir not ekle (db.insert)
}

void main() async {
  // özet mesajını yazdır, setupDb ve addNote çağır, kapat
}

Örnek çözüm

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

Future<Database> setupDb() async {
  final db = await openDatabase('notes.db');
  await db.execute('CREATE TABLE notes (id INTEGER PRIMARY KEY, title TEXT)');
  return db;
}

Future<void> addNote(Database db) async {
  await db.insert('notes', {'title': 'Özet not'});
}

void main() async {
  print('Özet: sqflite + CRUD');
  final db = await setupDb();
  await addNote(db);
  print('Eklendi: Özet not');
  await db.close();
}

Beklenen çıktı

Özet: sqflite + CRUD
Eklendi: Özet not

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Atomik işlem hangisidir?

  • db.close
  • db.query
  • db.execute
  • Transaction Doğru cevap

Açıklama: transaction birden çok işlemi atomik çalıştırır.

2 Veritabanı kavramlarını eşleştir

Kavram Anlamı
sqflite Gömülü SQLite
Database Bağlantı
CRUD insert/query/update/delete
drift ORM

3 db.transaction çağrısı

Soru
await db.____((txn) async {
    await txn.insert('notes', {'title': 'Özet not'});
  });
Cevap
await db.transaction((txn) async {
    await txn.insert('notes', {'title': 'Özet not'});
  });

Açıklama: db.transaction atomik bloğu başlatır.

İleri seviye bölümündeki tüm dersler