플러터SQLFLITE 업데이트 포함
Computer 비관심/Flutter2021. 5. 12. 01:20
반응형
import 'dart:async';
import 'package:flutter_sqlite_demo/models/model.dart';
import 'package:sqflite/sqflite.dart';
abstract class DB {
static Database _db;
static int get _version => 1;
static Future<void> init() async {
if (_db != null) { return; }
try {
String _path = await getDatabasesPath() + 'example';
_db = await openDatabase(_path, version: _version, onCreate: onCreate, onUpdate:_onUpdate);
}
catch(ex) {
print(ex);
}
}
static void onCreate(Database db, int version) async =>
await db.execute('CREATE TABLE todo_items (id INTEGER PRIMARY KEY NOT NULL, task STRING, complete BOOLEAN)');
// 버전을 올린 뒤에 사용하는 코드, 버전을 올리면 새로 만들때도 memo TEXT를 넣어줘야 함
static void _onUpgrade(Database db, int oldVersion, int newVersion) {
if (oldVersion < newVersion) {
db.execute("ALTER TABLE todo_items ADD COLUMN memo TEXT;");
}
}
static Future<List<Map<String, dynamic>>> query(String table) async => _db.query(table);
static Future<int> insert(String table, Model model) async =>
await _db.insert(table, model.toMap());
static Future<int> update(String table, Model model) async =>
await _db.update(table, model.toMap(), where: 'id = ?', whereArgs: [model.id]);
static Future<int> delete(String table, Model model) async =>
await _db.delete(table, where: 'id = ?', whereArgs: [model.id]);
'Computer 비관심 > Flutter' 카테고리의 다른 글
[에디터 잘써먹고 스타일 잘해보기] 플러터 위젯 이해하기 (0) | 2021.07.17 |
---|---|
플러터 listView와 sliverList 으로 리스트 그리기 (0) | 2021.06.26 |
플러터 버그 (0) | 2021.05.03 |
[플러터] 플러터 애드몹 달기 (0) | 2021.05.01 |
[플러터] 플러터 장점과 단점. (0) | 2021.04.24 |
댓글()