sqflite turotial code example
Example 1: flutter sqflite DatabaseHelper
import 'dart:async';
import 'package:eknumber/utils/database_helper.dart';
import 'package:flutter_simple_dependency_injection/injector.dart';
class Injection {
static DatabaseHelper _databaseHelper = DatabaseHelper();
static Injector injector;
static Future initInjection() async {
await _databaseHelper.initDb();
injector = Injector.getInjector();
injector.map<DatabaseHelper>((i) => _databaseHelper,
isSingleton: true);
}
}
Example 2: flutter sqflite DatabaseHelper
import 'dart:io' as io;
import 'package:path/path.dart';
import 'package:path_provider/path_provider.dart';
import 'package:sqflite/sqflite.dart';
class DatabaseHelper {
static final DatabaseHelper _instance = new DatabaseHelper.internal();
factory DatabaseHelper() => _instance;
static Database _db;
DatabaseHelper.internal();
initDb() async {
io.Directory documentsDirectory = await getApplicationDocumentsDirectory();
String path = join(documentsDirectory.path, "database_name.db");
_db = await openDatabase(path, version: 1, onCreate: _onCreate);
}
Database get db {
return _db;
}
void _onCreate(Database db, int version) async {
// When creating the db, create the table
await db.execute(
'CREATE TABLE todos (id INTEGER PRIMARY KEY AUTOINCREMENT,'
'item_name TEXT,'
'date_created TEXT')';
}
}
Example 3: flutter sqflite DatabaseHelper
class Todo{
int id;
String itemName;
String dateCreated;
Todo(
{this.id,
this.itemName,
this.dateCreated})
//to be used when inserting a row in the table
Map<String, dynamic> toMapWithoutId() {
final map = new Map<String, dynamic>();
map["item_name"] = itemName;
map["date_created"] = dateCreated;
return map;
}
Map<String, dynamic> toMap() {
final map = new Map<String, dynamic>();
map["id"] = id;
map["item_name"] = itemName;
map["date_created"] = dateCreated;
return map;
}
//to be used when converting the row into object
factory Todo.fromMap(Map<String, dynamic> data) => new Todo(
id: data['id'],
itemName: data['item_name'],
dateCreated: data['date_created']
);
}