Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import 'dart:io';
- import 'package:path_provider/path_provider.dart';
- import 'package:sqflite/sqflite.dart';
- import 'package:path/path.dart' as path;
- class SqfliteStore {
- static const String TABLE_NAME_STR = "kv_str";
- static const String TABLE_NAME_INT = "kv_int";
- Database db;
- @override
- Future init() async {
- var dir = await getApplicationDocumentsDirectory();
- var dbPath = path.join(dir.path, 'sqlite.db');
- try {
- await File(dbPath).delete();
- } catch (e) {
- //ignore
- }
- ;
- db = await openDatabase(
- dbPath,
- onCreate: (db, version) async {
- await db.execute(
- 'CREATE TABLE $TABLE_NAME_STR (key TEXT PRIMARY KEY, value TEXT)',
- );
- await db.execute(
- 'CREATE TABLE $TABLE_NAME_INT (key TEXT PRIMARY KEY, value INTEGER)',
- );
- },
- version: 1,
- );
- }
- Batch startBatch() {
- return db.batch();
- }
- Future<List<dynamic>> commitBatch(Batch batch) {
- return batch.commit();
- }
- @override
- Future<int> getInt(String key) async {
- var result = await db.query(
- TABLE_NAME_INT,
- where: "key = ?",
- whereArgs: [key],
- );
- return result[0]['value'] as int;
- }
- @override
- void getIntBatch(String key, Batch b) async {
- b.query(
- TABLE_NAME_INT,
- where: "key = ?",
- whereArgs: [key],
- );
- return;
- }
- @override
- Future putInt(String key, int value) {
- return db.insert(
- TABLE_NAME_INT,
- {'key': key, 'value': value},
- conflictAlgorithm: ConflictAlgorithm.replace,
- );
- }
- @override
- void putIntBatched(String key, int value, Batch b) {
- return b.insert(
- TABLE_NAME_INT,
- {'key': key, 'value': value},
- conflictAlgorithm: ConflictAlgorithm.replace,
- );
- }
- @override
- Future deleteInt(String key) {
- return db.delete(
- TABLE_NAME_INT,
- where: "key = ?",
- whereArgs: [key],
- );
- }
- @override
- void deleteIntBatched(String key, Batch b) {
- return b.delete(
- TABLE_NAME_INT,
- where: "key = ?",
- whereArgs: [key],
- );
- }
- @override
- Future<String> getString(String key) async {
- var result = await db.query(
- TABLE_NAME_STR,
- where: "key = ?",
- whereArgs: [key],
- );
- return result[0]['value'] as String;
- }
- @override
- void getStringBatch(String key, Batch b) async {
- b.query(
- TABLE_NAME_STR,
- where: "key = ?",
- whereArgs: [key],
- );
- }
- @override
- Future putString(String key, String value) {
- return db.insert(
- TABLE_NAME_STR,
- {'key': key, 'value': value},
- conflictAlgorithm: ConflictAlgorithm.replace,
- );
- }
- @override
- void putStringBatched(String key, String value, Batch b) {
- b.insert(
- TABLE_NAME_STR,
- {'key': key, 'value': value},
- conflictAlgorithm: ConflictAlgorithm.replace,
- );
- }
- @override
- Future deleteString(String key) {
- return db.delete(
- TABLE_NAME_STR,
- where: "key = ?",
- whereArgs: [key],
- );
- }
- @override
- void deleteStringBatched(String key, Batch b) {
- return b.delete(
- TABLE_NAME_STR,
- where: "key = ?",
- whereArgs: [key],
- );
- }
- @override
- Future close() {
- return db.close();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement