openDatabase
- Flutter kursu
- Orta seviye
- Ders 42/99
- 4 dk
openDatabase ile veritabanı oluşturmayı öğrenirsin.
Tablo oluşturma
Bir tablo oluşturmak için db.execute ile CREATE TABLE SQL sorgusu çalıştırırsın. openDatabase'in onCreate callback'i ilk açılışta çağrılır.
await openDatabase(
'uygulama.db',
version: 1,
onCreate: (db, version) async {
await db.execute(
'CREATE TABLE kullanicilar (id INTEGER PRIMARY KEY, isim TEXT)'
);
},
);Bu sorgu tabloyu bir kez oluşturur.
onCreate callback
onCreate, veritabanı ilk kez oluşturulduğunda çağrılır. Burada tabloları tanımlarsın. version parametresi tablo sürümünü belirtir; değişiklikte onUpgrade tetiklenir.
onCreate: (db, version) async {
await db.execute('CREATE TABLE ...');
},onCreate yalnızca bir kez çalışır.
Uygulama kullanicilar tablosu oluştur
ac async metodunda openDatabase çağır. onCreate callback'inde db.execute ile 'CREATE TABLE kullanicilar (id INTEGER PRIMARY KEY, isim TEXT)' sorgusunu çalıştır. main'de ac'ı await et ve print('tablo oluşturuldu') yaz.
Başlangıç kodu
import 'package:sqflite/sqflite.dart';
Future<void> ac() async {
// openDatabase ile onCreate içinde tablo oluştur
}
void main() async {
await ac();
print('tablo oluşturuldu');
}Örnek çözüm
import 'package:sqflite/sqflite.dart';
Future<void> ac() async {
await openDatabase(
'uygulama.db',
version: 1,
onCreate: (db, version) async {
await db.execute(
'CREATE TABLE kullanicilar (id INTEGER PRIMARY KEY, isim TEXT)'
);
},
);
}
void main() async {
await ac();
print('tablo oluşturuldu');
}Beklenen çıktı
tablo oluşturuldu
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Tablo oluşturmak için hangi SQL komutu kullanılır?
- DELETE FROM
- CREATE TABLE Doğru cevap
- SELECT
- INSERT INTO
Açıklama: CREATE TABLE komutu bir tabloyu kolonlarıyla birlikte tanımlar ve oluşturur.
2 CREATE TABLE sorgusunu çalıştır
await db.____(
'CREATE TABLE kullanicilar (id INTEGER PRIMARY KEY, isim TEXT)'
);
await db.execute(
'CREATE TABLE kullanicilar (id INTEGER PRIMARY KEY, isim TEXT)'
);
Açıklama: db.execute ile CREATE TABLE gibi SQL komutları çalıştırılır; geriye değer döndürmeyen sorgular için kullanılır.
3 Tablo oluşturma parçaları
| Kavram | Anlamı |
|---|---|
CREATE TABLE |
Tabloyu oluşturan SQL komutu |
onCreate |
İlk açılışta çağrılan callback |
execute |
SQL komutunu çalıştıran metod |
version |
Tablo sürümünü belirten parametre |