Özet - sqflite
- Flutter kursu
- Orta seviye
- Ders 45/99
- 4 dk
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
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
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
await openDatabase(
'uygulama.db',
version: 1,
____: (db, version) async {
await db.execute('CREATE TABLE notlar (id INTEGER PRIMARY KEY, baslik TEXT)');
},
)
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 |