<Flutter> sqflite 기본 사용법

반응형

Flutter 앱에서 데이터를 로컬 저장소에 보존하기 위해 sqflite를 사용하여 데이터베이스를 생성하고 사용하는 방법을 배워봅시다.

 

이 글에서는 Flutter에서 sqflite를 설치하고, UserData 테이블을 생성하여 CRUD 작업을 수행하는 방법에 대해 설명합니다.

 

1. Flutter에서 sqflite 설치하기

 

먼저 Flutter 프로젝트에서 sqflite를 사용하려면 pubspec.yaml 파일에서 종속성으로 추가해야 합니다.

`dependencies` 섹션에 다음과 같이 입력하세요.

dependencies:
  sqflite: ^2.2.8+4 
  path_provider: ^2.0.15

`path_provider`도 사용하여 데이터베이스 파일을 저장할 경로를 찾습니다.

 

저장한 후 pub get 명령을 실행하여 라이브러리를 가져오세요.

 

2. UserData 테이블 생성하기

 

다음으로 쿼리를 작성하고 UserData 테이블을 생성할 DBHelper 클래스를 작성합니다.

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

class DBHelper {
  Future<Database> initDB() async {
    var documentDirectory = await getApplicationDocumentsDirectory();
    var databasePath = join(documentDirectory.path, 'user_data.db');
    var database = openDatabase(
      databasePath,
      version: 1,
      onCreate: (Database db, int version) async {
        await db.execute('''
          CREATE TABLE UserData(
            id INTEGER PRIMARY KEY,
            name TEXT,
            age INTEGER
          )
        ''');
      },
    );
    return database;
  }
}

 

DBHelper 클래스에서 `initDB` 함수를 호출하여 'user_data.db'라는 이름의 데이터베이스를 생성하고, UserData 테이블을 생성하는 코드를 작성했습니다.

 

3. 생성한 테이블에서 CRUD 작업 수행하기

 

이제 UserData 테이블의 CRUD 작업을 수행하는 함수를 DBHelper 클래스에 추가합니다.

 

### 데이터 삽입 (Create)

Future<int> insertUserData(Map<String, dynamic> userData) async {
  var database = await initDB();
  return await database.insert('UserData', userData);
}

### 데이터 조회 (Read)

Future<List<Map<String, dynamic>>> getUserData() async {
  var database = await initDB();
  return await database.query('UserData');
}

 

### 데이터 업데이트 (Update)

Future<int> updateUserData(Map<String, dynamic> userData) async {
  var database = await initDB();
  return await database.update('UserData', userData, where: 'id = ?', whereArgs: [userData['id']]);
}

### 데이터 삭제 (Delete)

Future<int> deleteUserData(int id) async {
  var database = await initDB();
  return await database.delete('UserData', where: 'id = ?', whereArgs: [id]);
}

 

 

이제 DBHelper 클래스에서 테이블의 CRUD 작업에 대한 함수를 작성했습니다.

앱에서 이 클래스를 import하여 테이블에서 데이터를 생성, 조회, 업데이트 및 삭제할 수 있습니다.

 

 

이상으로 Flutter 앱에서 sqflite를 사용해 로컬 데이터베이스를 생성하고 UserData 테이블에서 CRUD 작업을 수행하는 방법을 설명했습니다.

 

이를 통해 로컬 데이터를 사용하는 앱에서 효율적으로 데이터를 관리할 수 있습니다.

Designed by JB FACTORY