CodeBlanks Logo Icon CodeBlanks

Özet - sqflite

openDatabase, CREATE ve INSERT'i birleştirerek not defteri yaparsın.

Özet - sqflite

Bu bölümde üç şey öğrendin: sqflite ile yerel SQLite veritabanı açarsın; onCreate ve execute ile tablo oluşturursun; insert ve query ile kayıt ekleyip okursun.

final db = await openDatabase('uygulama.db',
  onCreate: (db, v) async {
    await db.execute('CREATE TABLE kullanicilar (id INTEGER PRIMARY KEY, isim TEXT)');
  },
);
await db.insert('kullanicilar', {'isim': 'Ayşe'});
final satirlar = await db.query('kullanicilar');

Bunları birleştirerek not uygulaması yaparsın.

Uygulama Not uygulaması yap

Veritabani sınıfında ac, notEkle ve tumNotlar metotları yaz. ac'ta openDatabase ile onCreate'te notlar (id INTEGER PRIMARY KEY, baslik TEXT) tablosunu oluştur. notEkle db.insert('notlar', {'baslik': baslik}) çağırsın. tumNotlar db.query('notlar') döndürsün. main'de notEkle('Alışveriş') çağır, sonra tüm notları gez ve print('baslik: ${satir['baslik']}') yaz.

Başlangıç kodu

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

class Veritabani {
  late Database db;

  // ac, notEkle ve tumNotlar metotları ekle
}

void main() async {
  final vt = Veritabani();
  // ac, notEkle çağır ve tüm notları yazdır
}

Örnek çözüm

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

class Veritabani {
  late Database db;

  Future<void> ac() async {
    db = await openDatabase(
      'uygulama.db',
      version: 1,
      onCreate: (db, version) async {
        await db.execute(
          'CREATE TABLE notlar (id INTEGER PRIMARY KEY, baslik TEXT)'
        );
      },
    );
  }

  Future<int> notEkle(String baslik) async {
    return await db.insert('notlar', {'baslik': baslik});
  }

  Future<List<Map<String, dynamic>>> tumNotlar() async {
    return await db.query('notlar');
  }
}

void main() async {
  final vt = Veritabani();
  await vt.ac();
  await vt.notEkle('Alışveriş');
  final satirlar = await vt.tumNotlar();
  for (final satir in satirlar) {
    print('baslik: ${satir['baslik']}');
  }
}

Beklenen çıktı

baslik: Alışveriş

Soru ve cevaplar

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

1 Not uygulamasında yeni notu veritabanına eklemek için hangi metod kullanılır?

  • db.execute
  • db.delete
  • db.query
  • db.insert Doğru cevap

Açıklama: Yeni not eklemek için db.insert metodu kullanılır; Map olarak sütun değerleri verilir.

2 openDatabase'e onCreate ver

Soru
await openDatabase(
  'uygulama.db',
  version: 1,
  ____: (db, version) async {
    await db.execute('CREATE TABLE notlar (id INTEGER PRIMARY KEY, baslik TEXT)');
  },
)
Cevap
await openDatabase(
  'uygulama.db',
  version: 1,
  onCreate: (db, version) async {
    await db.execute('CREATE TABLE notlar (id INTEGER PRIMARY KEY, baslik TEXT)');
  },
)

Açıklama: openDatabase'in onCreate callback'i veritabanı ilk oluşturulduğunda çağrılır ve tablolar burada tanımlanır.

3 sqflite bölümünün parçaları

Kavram Anlamı
openDatabase Veritabanını açan metod
onCreate İlk açılışta tabloları tanımlar
insert Tabloya kayıt ekler
query Tablodaki satırları okur

Orta seviye bölümündeki tüm dersler