[flutter] 플러터(sqflite)를 사용한 데이터베이스 수정과 삭제 방법

이번 글에서는 플러터(Flutter) 앱에서 SQFlite를 이용하여 데이터베이스의 레코드를 수정하고 삭제하는 방법에 대해 알아보겠습니다. SQFlite는 플러터에서 사용할 수 있는 경량의 데이터베이스 패키지로 안드로이드와 iOS에서 동작하는데 유용합니다.

1. 데이터 수정하기

데이터를 수정하기 위해선 update 메서드를 사용합니다. 아래는 데이터베이스에서 특정 레코드를 업데이트하는 예제 코드입니다.

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

// 데이터 수정
void updateData(int id, String newData) async {
  // 데이터베이스 경로 설정
  var databasesPath = await getDatabasesPath();
  String path = join(databasesPath, 'example.db');

  // 데이터베이스 열기
  Database database = await openDatabase(path, version: 1,
      onCreate: (Database db, int version) async {
    // 데이터베이스 테이블 생성
    await db.execute(
        'CREATE TABLE Test (id INTEGER PRIMARY KEY, value TEXT)');
  });

  // 데이터 수정
  await database.rawQuery(
      'UPDATE Test SET value = ? WHERE id = ?', [newData, id]);

  // 데이터베이스 닫기
  await database.close();
}

2. 데이터 삭제하기

데이터를 삭제하기 위해서는 delete 메서드를 사용합니다. 아래는 데이터베이스에서 특정 레코드를 삭제하는 예제 코드입니다.

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

// 데이터 삭제
void deleteData(int id) async {
  // 데이터베이스 경로 설정
  var databasesPath = await getDatabasesPath();
  String path = join(databasesPath, 'example.db');

  // 데이터베이스 열기
  Database database = await openDatabase(path, version: 1,
      onCreate: (Database db, int version) async {
    // 데이터베이스 테이블 생성
    await db.execute(
        'CREATE TABLE Test (id INTEGER PRIMARY KEY, value TEXT)');
  });

  // 데이터 삭제
  await database.rawQuery('DELETE FROM Test WHERE id = ?', [id]);

  // 데이터베이스 닫기
  await database.close();
}

위 코드를 사용하면 간단하게 플러터 앱에서 SQFlite를 사용하여 데이터를 수정하고 삭제할 수 있습니다. 만약 데이터베이스가 존재하지 않는 경우에는 자동으로 새로운 데이터베이스가 생성됩니다. SQFlite를 사용하면 앱에서 간단한 로컬 데이터베이스를 쉽게 다룰 수 있습니다.

더 많은 정보는 SQFlite 공식 문서를 참고하시기 바랍니다.