Flutter

Dart Sqflite

Declare a dependency

Create file: pubspec.yaml

name: sqflite_app
version: 1.0.0
environment:
  sdk: ^3.12.0
dependencies:
  sqflite_common_ffi: ^2.4.2+1
  path: ^1.9.1

Initial Database

sqfliteFfiInit();
databaseFactory = databaseFactoryFfi;
String path = join(await getDatabasesPath(), "store.db");
Database database = await openDatabase(path, version: 1, onCreate: (db, version) async{
    await db.execute("""
        CREATE TABLE Category (
            id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, 
            name TEXT NOT NULL,
            description TEXT NOT NULL
        );
    """);
    await db.execute("""
        INSERT INTO Category (id, name, description) VALUES
            (1, 'Laptop', 'Máy tính xách tay'),
            (2, 'Mouse', 'Chuột máy tính'),
            (3, 'Keyboard', 'Bàn phím máy tính xách tay');
    """);
});

Query All

List<Map<String, Object?>> list = await db.query('category');
for (Map<String, Object?> item in list) {
    print('Id: ${item['id']}, name: ${item['name']}, description: ${item['description']}');
}
Or
List<Map<String, Object?>> list = await db.rawQuery('SELECT * FROM Category');

Query One

List<Map<String, Object?>> data = await db.query('category', where: 'id = ?', whereArgs: [1]);
Map<String, Object?> map = data.first;

Insert

int ret = await db.insert('Category', {'id': 4, 'name': 'SSD', 'description': 'Ổ đữa cứng máy tính'});
Or
int ret = await db.rawInsert("INSERT INTO Category(id, name, description) VALUES (5, 'RAM', 'RAM máy tính');");

Update

int ret = await db.update('Category', {'name': 'RAM', 'description': 'RAM máy tính bàn và máy tính xách tay'}, where: 'id = ?', whereArgs: [5]);
Or
int ret = await db.rawUpdate("UPDATE Category SET name = 'SDD', description = 'Ổ đĩa cứng máy tính bàn và máy tính xách tay' WHERE id = 4");

Delete

int ret = await db.delete('Category', where: 'id = ?', whereArgs: [5]);