sqflite
- Dart kursu
- İleri seviye
- Ders 43/83
- 5 dk
sqflite ile SQLite öğrenirsin.
sqflite
sqflite, Dart ve Flutter için gömülü (embedded) bir SQLite veri tabanı paketidir. Verileri yerel olarak bir dosyada saklar; sunucu gerekmez. Zaman uyumsuz (async) API sunar: openDatabase ile açar, db.execute ile SQL çalıştırırsın.
Örnek: final db = await openDatabase('notes.db'); ile bir veri tabanı açarsın. await db.execute('CREATE TABLE notes (...)'); ile tablo oluşturursun. Tüm çağrılar await ile beklenir; bu yüzden main genellikle async olur.
Veri tabanı kurulumu
Bir veri tabanı kurarken önce openDatabase ile açar, ardından db.execute ile tablo oluşturursun. Tablo yapısı SQL ile yazılır: CREATE TABLE notes (id INTEGER PRIMARY KEY, title TEXT, body TEXT).
İşin bitince await db.close() ile bağlantıyı kapatırsın. Kaynak sızıntısını önlemek için her zaman kapatmak iyi bir alışkanlıktır. Bu derste setupDb adında bir yardımcı fonksiyon yazacağız; sonraki derslerde onu yeniden kullanacağız.
Uygulama Veri tabanı kurulum fonksiyonu
import 'package:sqflite/sqflite.dart'; satırını ekle. Future<Database> setupDb() async { ... } fonksiyonunu tanımla: openDatabase('notes.db') ile aç, db.execute('CREATE TABLE notes (id INTEGER PRIMARY KEY, title TEXT, body TEXT)') ile tablo oluştur ve db döndür. main içinde print('sqflite hazır: notes.db') ve print('Tablo: notes (id, title, body)') çağrılarını ekle, sonra await setupDb() çağır.
Başlangıç kodu
// sqflite paketini içe aktar
// setupDb fonksiyonunu tanımla (notes.db aç, notes tablosu oluştur)
void main() async {
// sqflite hazır mesajını ve tablo bilgisini yazdır
}Ö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, body TEXT)');
return db;
}
void main() async {
print('sqflite hazır: notes.db');
print('Tablo: notes (id, title, body)');
await setupDb();
}Beklenen çıktı
sqflite hazır: notes.db Tablo: notes (id, title, body)
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 sqflite ne sağlar?
- Web sunucusu
- Bulut depolama
- Gömülü SQLite Doğru cevap
- Bellek önbelleği
Açıklama: sqflite gömülü bir SQLite veri tabanı sağlar.
2 Veri tabanı açma
Future<Database> setupDb() async {
final db = await ____('notes.db');
await db.execute('CREATE TABLE notes (id INTEGER PRIMARY KEY, title TEXT, body TEXT)');
return db;
}
Future<Database> setupDb() async {
final db = await openDatabase('notes.db');
await db.execute('CREATE TABLE notes (id INTEGER PRIMARY KEY, title TEXT, body TEXT)');
return db;
}
Açıklama: openDatabase('notes.db') ile veri tabanı açılır.
3 sqflite parçalarını eşleştir
| Kavram | Anlamı |
|---|---|
sqflite |
Gömülü SQLite |
openDatabase |
Veri tabanı açar |
db.execute |
SQL çalıştırır |
db.close |
Bağlantıyı kapatır |