Özet - Veritabanı
- Dart kursu
- İleri seviye
- Ders 48/83
- 5 dk
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
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
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ı
await db.____((txn) async {
await txn.insert('notes', {'title': 'Özet not'});
});
await db.transaction((txn) async {
await txn.insert('notes', {'title': 'Özet not'});
});
Açıklama: db.transaction atomik bloğu başlatır.