CodeBlanks Logo Icon CodeBlanks

Database

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

main.dart
// 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

main.dart
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ü

Soru
Future<____> openDb() async {
  final db = await openDatabase('users.db');
  await db.execute('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)');
  return db;
}
Cevap
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

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