티스토리 뷰
목차
반응형
-출처 홍드로이드 강좌->
import 'package:archive_idea/data/idea_info.dart';
import 'package:sqflite/sqflite.dart';
import 'package:path/path.dart';
class DatabaseHelper {
late Database database;
//데이터 베이스 초기화 및 열기
Future<void> initDatabase() async {
// 데이터 베이스 경로 가져오기
String path = join(await getDatabasesPath(), 'archive_idea.db');
// 데이터 베이스 열기 또는 생성
database = await openDatabase(
path,
version: 1,
onCreate: (db, version) {
//데이터 베이스가 생성될 때 실행되는 코드
db.execute('''
CREATE TABLE IF NOT EXISTS tb_idea (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT,
motive TEXT,
content TEXT,
priority INTEGER,
feedback TEXT,
createdAt INTEGER
)
''');
},
);
}
//insert
Future<int> insertIdeaInfo(IdeaInfo idea) async {
return await database.insert('tb_idea', idea.toMap());
}
//select
Future<List<IdeaInfo>> getAllIdeaInfo() async {
//데이터 베이스에서 응답받을때는 우선 맵형태로 리턴 받아야함
final List<Map<String, dynamic>> result = await database.query('tb_idea');
return List.generate(result.length, (index) {
return IdeaInfo.fromMap(result[index]);
});
}
// update
Future<int> updateIdeainfo(IdeaInfo idea) async {
return await database
.update('tb_idea',
idea.toMap(),
where: 'id = ?',
whereArgs: [idea.id],
);
}
//delete
Future<int> deleteIdeainfo(IdeaInfo idea) async {
return await database
.delete(
'tb_idea',
where: 'id = ?',
whereArgs: [idea.id],
);
}
//데이터 베이스 닫기 (앱 내에서 데이터 베이스 사용하지 않는경우 닫아줘야함
Future<void> closeDatabase() async{
await database.close();
}
}
import 'package:sqflite/sqflite.dart';
import 'package:path/path.dart';
class DatabaseHelper {
late Database database;
//데이터 베이스 초기화 및 열기
Future<void> initDatabase() async {
// 데이터 베이스 경로 가져오기
String path = join(await getDatabasesPath(), 'archive_idea.db');
// 데이터 베이스 열기 또는 생성
database = await openDatabase(
path,
version: 1,
onCreate: (db, version) {
//데이터 베이스가 생성될 때 실행되는 코드
db.execute('''
CREATE TABLE IF NOT EXISTS tb_idea (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT,
motive TEXT,
content TEXT,
priority INTEGER,
feedback TEXT,
createdAt INTEGER
)
''');
},
);
}
//insert
Future<int> insertIdeaInfo(IdeaInfo idea) async {
return await database.insert('tb_idea', idea.toMap());
}
//select
Future<List<IdeaInfo>> getAllIdeaInfo() async {
//데이터 베이스에서 응답받을때는 우선 맵형태로 리턴 받아야함
final List<Map<String, dynamic>> result = await database.query('tb_idea');
return List.generate(result.length, (index) {
return IdeaInfo.fromMap(result[index]);
});
}
// update
Future<int> updateIdeainfo(IdeaInfo idea) async {
return await database
.update('tb_idea',
idea.toMap(),
where: 'id = ?',
whereArgs: [idea.id],
);
}
//delete
Future<int> deleteIdeainfo(IdeaInfo idea) async {
return await database
.delete(
'tb_idea',
where: 'id = ?',
whereArgs: [idea.id],
);
}
//데이터 베이스 닫기 (앱 내에서 데이터 베이스 사용하지 않는경우 닫아줘야함
Future<void> closeDatabase() async{
await database.close();
}
}
조회 샘플
Future<void> getIdeaInfo() async {
await dbHelper.initDatabase();
lstideaInfo = await dbHelper.getAllIdeaInfo();
// 리스트 객체 역순으로 정렬
lstideaInfo.sort((a, b) => b.createdAt.compareTo(a.createdAt));
setState(() {});
}
await dbHelper.initDatabase();
lstideaInfo = await dbHelper.getAllIdeaInfo();
// 리스트 객체 역순으로 정렬
lstideaInfo.sort((a, b) => b.createdAt.compareTo(a.createdAt));
setState(() {});
}
저장 샘플
Future<void> setInsertIdeaInfo() async {
await dbHelper.initDatabase();
await dbHelper.insertIdeaInfo(IdeaInfo(
title: '# 가나다라마바사',
motive: '길가다가 쓰레게 줍기',
content: '상세 내용 입니다',
priority: 5,
feedback: '피드백 사항',
createdAt: DateTime.now().millisecondsSinceEpoch,
));
}
반응형
'개발' 카테고리의 다른 글
플러터 - 이미지 모서리 둥글게 (round) (0) | 2024.09.23 |
---|---|
플러터 목록 출력 샘플 (0) | 2024.09.23 |
안드로이드 스튜디오 프로젝트 삭제 (프로젝트 제거) (0) | 2024.09.23 |
플러터 pubspec.yaml 사용할 패키지 가져오기(이미지,폰트) (0) | 2024.09.23 |
플러터 Dart 변수 타입과 컬렉션 및 상수(final,const) (0) | 2024.09.23 |