Category

Flutter SQLite Database Example

Öncellikle pubspec.yaml dosyasına aşağıdaki kod sayını ekleyiniz.
sqflite: ^1.1.7+3
Yeni bir class oluşturup aşağıdaki kodu import ediyoruz.
import 'package:sqflite/sqflite.dart';
Tablolarımızdaki kolnlar ve tablo isimleri;

  static DatabaseHelper _databaseHelper; // Singleton DatabaseHelper

  static Database _database; // Singleton Database

  String konuTakip = 'tblKonuTakip';

  String colKonuID = 'konuID';

  String colDersAdi = 'dersAdi';

  String colKonuAdi = 'konuAdi';

  String colNote = 'note';

  String colKonuBittiMi = 'konuBittiMi';

  String colBirinciSoruBankasi = 'birinciSoruBankasi';

  String colIkinciSoruBankasi = 'ikinciSoruBankasi';

  String soruTakip = "tblSoruTakibi";

  String colSSinavAdi = "sinavAdi";

  String colSDersID = 'dersID';

  String colSDersAdi = 'dersAdi';

  String colSHedef = "hedef";

  String colSBittiMi = 'bittiMi';

  String colSTarih = 'tarih';

  DatabaseHelper._createInstance(); 

  factory DatabaseHelper() {

    if (_databaseHelper == null) {

      _databaseHelper = DatabaseHelper

          ._createInstance(); 

    }

    return _databaseHelper;

  }

  Future<Database> get database async {

    if (_database == null) {

      _database = await initializeDatabase();

    }

    return _database;

  }

  Future<Database> initializeDatabase() async {

    Directory directory = await getApplicationDocumentsDirectory();

    String path = directory.path + 'dbSelahattin.db';

    var todosDatabase =

        await openDatabase(path, version: 1, onCreate: _createDb);

    return todosDatabase;

  }

Tablolar ve veritabanı  oluşturma;

 void _createDb(Database db, int newVersion) async {

    await db.execute(

        'CREATE TABLE $konuTakip($colKonuID INTEGER PRIMARY KEY AUTOINCREMENT, $colDersAdi TEXT, '

        '$colKonuAdi TEXT, $colNote TEXT, $colKonuBittiMi TEXT, $colBirinciSoruBankasi TEXT, $colIkinciSoruBankasi TEXT)');

    await db.execute(

        'CREATE TABLE $soruTakip($colSDersID INTEGER PRIMARY KEY AUTOINCREMENT, $colSDersAdi TEXT, '

        '$colSSinavAdi TEXT, $colSHedef TEXT, $colSTarih TEXT, $colSBittiMi TEXT)');

  }

Update, Insert ve Get kullanımı

  Future<List<Map<String, dynamic>>> getKonuNotTakibiMapList(

      String dersAdi) async {

    Database db = await this.database;

    var result = await db

        .rawQuery('SELECT * FROM $konuTakip WHERE $colDersAdi ="$dersAdi"');

    // var result = await db.query(konuTakip);

    return result;

  }
  insertKonuNotTakibi(EKonuNotTakibi todo) async {

    Database db = await this.database;

    var result = await db.insert(konuTakip, todo.toMap());

    print(result.toString());

  }

  Future<int> updateKonuNotTakibi(EKonuNotTakibi todo) async {

    var db = await this.database;

    var result = await db.update(konuTakip, todo.toMap(),

        where: '$colKonuID = ?', whereArgs: [todo.konuID]);

    return result;

  }

gördüğünüz gibi SQLite’yi daha önce kullandığınız programlama dillerin kullanım yapısından pek bir farkı yok.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir