[flutter] 플러터(sqflite)에서의 데이터 쿼리 작성 방법

플러터(sqflite)는 내장형 데이터베이스에 접근하기 위한 플러터 플러그인입니다. 데이터베이스에 데이터를 삽입, 수정, 삭제, 조회하는 것이 가능합니다.

이 글에서는 sqflite에서 데이터 쿼리를 작성하는 방법을 알아보겠습니다.

1. 데이터베이스 열기

먼저, 데이터베이스를 열어야 합니다. 다음은 데이터베이스를 열기 위한 코드입니다.

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

Future<Database> openDatabase() async {
  var documentsDirectory = await getApplicationDocumentsDirectory();
  var path = join(documentsDirectory.path, "example.db");
  
  return openDatabase(path, version: 1,
    onCreate: (Database db, int version) async {
      await db.execute("CREATE TABLE Test (id INTEGER PRIMARY KEY, name TEXT)");
  });
}

위 코드에서는 openDatabase 함수를 사용하여 데이터베이스를 열고, 데이터베이스가 없을 때 테이블을 생성하는 예제입니다.

2. 데이터 삽입

다음으로, 데이터를 삽입하는 방법에 대해 알아보겠습니다.

Future<int> insertData(String name) async {
  Database db = await openDatabase();
  return db.insert("Test", {"name": name});
}

insertData 함수를 호출하여 데이터를 삽입할 수 있습니다.

3. 데이터 조회

데이터를 조회하는 방법은 다음과 같습니다.

Future<List<Map<String, dynamic>>> getData() async {
  Database db = await openDatabase();
  return db.query("Test");
}

getData 함수를 사용하여 전체 데이터를 조회할 수 있습니다.

4. 데이터 업데이트

이제, 데이터를 업데이트 하는 방법에 대해 알아봅시다.

Future<int> updateData(int id, String name) async {
  Database db = await openDatabase();
  return db.update("Test", {"name": name}, where: "id = ?", whereArgs: [id]);
}

updateData 함수를 호출하여 데이터를 업데이트할 수 있습니다.

5. 데이터 삭제

마지막으로, 데이터를 삭제하는 방법에 대해 알아봅시다.

Future<int> deleteData(int id) async {
  Database db = await openDatabase();
  return db.delete("Test", where: "id = ?", whereArgs: [id]);
}

deleteData 함수를 호출하여 데이터를 삭제할 수 있습니다.

플러터(sqflite)에서 데이터 쿼리 작성 방법에 대해 알아보았습니다. 데이터 삽입, 조회, 업데이트, 삭제하는 방법을 예제와 함께 살펴봤습니다. 이를 활용하여 데이터베이스와 상호작용하는 플러터 앱을 개발할 수 있을 것입니다.