Database
- Dart kursu
- İleri seviye
- Ders 44/83
- 5 dk
Database ile bağlantı ve sorgu öğrenirsin.
Database bağlantısı
openDatabase çağrısı bir Database nesnesi döndürür. Bu nesne bağlantıyı temsil eder; tüm sorgular onun üzerinden yapılır. db.query, db.insert, db.update, db.delete ve db.execute yöntemleri vardır.
Bağlantıyı işin bitince await db.close() ile kapatırsın. Açık bağlantı bırakmak kaynak sızıntısına yol açar. Bu yüzden kurulum fonksiyonun sonunda kapatmak veya çağıranın sorumluluğunda bırakmak gerekir. Bu derste Database türünü vurgulayacağız.
Bağlantıyı kapatmak
Bir Database bağlantısı açıldıktan sonra sistem kaynaklarını tutar (dosya tanıtıcıları, bellek). İşin bitince await db.close() ile bu kaynakları serbest bırakırsın. Bu, uzun süre çalışan uygulamalarda özellikle önemlidir.
Örnek desen: final db = await openDb(); ... await db.close();. Kurulum fonksiyonu bağlantıyı döndürür; çağıran kullanır ve kapatır. Bu, sorumluluğu net tutar. Bu derste openDb fonksiyonunu yazıp Database döndürmesini sağlayacağız.
Uygulama openDb fonksiyonu
import 'package:sqflite/sqflite.dart'; ekle. Future<Database> openDb() async { ... } fonksiyonunu tanımla: openDatabase('users.db') ile aç, db.execute('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)') ile tablo oluştur ve db döndür. main içinde print('Database: users.db') ve print('Tablo: users (id, name)') ekle, sonra await openDb() çağır.
Başlangıç kodu
// sqflite paketini içe aktar
// openDb fonksiyonunu tanımla (users.db aç, users tablosu oluştur, Database döndür)
void main() async {
// bağlantı bilgisini yazdır
}Örnek çözüm
import 'package:sqflite/sqflite.dart';
Future<Database> openDb() async {
final db = await openDatabase('users.db');
await db.execute('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)');
return db;
}
void main() async {
print('Database: users.db');
print('Tablo: users (id, name)');
await openDb();
}Beklenen çıktı
Database: users.db Tablo: users (id, name)
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Database türü
Future<____> openDb() async {
final db = await openDatabase('users.db');
await db.execute('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)');
return db;
}
Future<Database> openDb() async {
final db = await openDatabase('users.db');
await db.execute('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)');
return db;
}
Açıklama: Future<Database> dönüş türü bağlantıyı belirtir.
2 openDatabase ne döndürür?
- void
- String
- int
- Database Doğru cevap
Açıklama: openDatabase bir Database nesnesi döndürür.
3 Database parçalarını eşleştir
| Kavram | Anlamı |
|---|---|
Database |
Bağlantı nesnesi |
openDatabase |
Açar |
db.close |
Kapatır |
await |
Zaman uyumsuz bekler |