<Flutter> sqflite 기본 사용법
- Developer/Flutter
- 2023. 7. 3.
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 작업을 수행하는 방법을 설명했습니다.
이를 통해 로컬 데이터를 사용하는 앱에서 효율적으로 데이터를 관리할 수 있습니다.
'Developer > Flutter' 카테고리의 다른 글
<Flutter> 스마트폰 화면에 맞춰 UI 만들기 (0) | 2023.07.05 |
---|---|
<Flutter> Padding과 Margin (0) | 2023.07.04 |
<Flutter> 위젯을 만들 때 자주 발생하는 에러와 해결 방법 (0) | 2023.07.04 |
<Flutter> 기본 위젯 공부하기 (0) | 2023.07.03 |
Flutter 상태 관리에 대하여 알아보자. (0) | 2023.07.01 |