Flutter Sqfliteでデータベースを作成したり削除する

Flutter Sqfliteでデータベースを作成したり削除する

sqfliteを使用するために必要なパッケージ

pubspec.yml

dependencies:
  flutter:
    sdk: flutter
  sqflite: ^2.0.0+3 // 追加
  path_provider: ^2.0.1 // 追加

追加できたら「Pub get」でインストールする

データベースの作成

lib/repositories/database_connection.dart

import 'package:path_provider/path_provider.dart';
import 'package:path/path.dart';
import 'package:sqflite/sqflite.dart';

class DatabaseConnection {
  setDatabase() async {
    var directory = await getApplicationDocumentsDirectory();
    var path = join(directory.path, 'データベース名');
    await deleteDatabase(path);

    var database = await openDatabase(path,
        version: 1, onCreate: _onCreatingDatabase, onConfigure: _onConfigure);

    return database;
  }

  _onCreatingDatabase(Database database, int version) async {
    await database.execute('データ作成のSQL');
    // 例
    await db.execute(
      'CREATE TABLE Test (id INTEGER PRIMARY KEY, name TEXT, value INTEGER, num REAL)');
  }
}

DatabaseConnection().setDatabase()でデータベースを作成できます。

データベースの削除

もしデータベースのSQLを間違えて記述してしまった場合は deleteDatabase(データベースへのパス)でデータベースを削除できます。

setDatabase() async {
    var directory = await getApplicationDocumentsDirectory();
    var path = join(directory.path, 'db_quick_note');
    await deleteDatabase(path); // データベースの削除

    var database = await openDatabase(path,
        version: 1, onCreate: _onCreatingDatabase, onConfigure: _onConfigure);

    return database;
  }

上記のようにコードを記述しデータベースを削除してもう一度作成し直すことができます。

Pub.dev sqflite: https://pub.dev/packages/sqflite

Flutterカテゴリの最新記事