Exemple de service
Pour créer un service qui gère la base de données SQLite avec une table Person
, vous pouvez suivre les étapes suivantes :
Créez une classe
DatabaseService
qui gère l'accès à la base de données SQLite et les opérations CRUD (Create, Read, Update, Delete) pour la tablePerson
.Initialisez la base de données et la table
Person
lors de la première utilisation du service.Implémentez des méthodes pour ajouter, lire, mettre à jour et supprimer des enregistrements de la table
Person
.
Voici un exemple de service DatabaseService
:
import 'package:sqflite/sqflite.dart';
import 'package:path/path.dart';
class DatabaseService {
static Database? _database;
static const String _tableName = 'persons';
Future<void> _initDatabase() async {
if (_database == null) {
_database = await openDatabase(
join(await getDatabasesPath(), 'persons_database.db'),
onCreate: (db, version) {
return db.execute(
'CREATE TABLE $_tableName(id INTEGER PRIMARY KEY, name TEXT, age INTEGER)',
);
},
version: 1,
);
}
}
Future<void> insertPerson(Person person) async {
await _initDatabase();
await _database!.insert(
_tableName,
person.toMap(),
conflictAlgorithm: ConflictAlgorithm.replace,
);
}
Future<List<Person>> getPersons() async {
await _initDatabase();
final List<Map<String, dynamic>> maps = await _database!.query(_tableName);
return List.generate(maps.length, (i) {
return Person(
id: maps[i]['id'],
name: maps[i]['name'],
age: maps[i]['age'],
);
});
}
Future<void> updatePerson(Person person) async {
await _initDatabase();
await _database!.update(
_tableName,
person.toMap(),
where: 'id = ?',
whereArgs: [person.id],
);
}
Future<void> deletePerson(int id) async {
await _initDatabase();
await _database!.delete(
_tableName,
where: 'id = ?',
whereArgs: [id],
);
}
}
class Person {
final int? id;
final String name;
final int age;
Person({this.id, required this.name, required this.age});
Map<String, dynamic> toMap() {
return {
'id': id,
'name': name,
'age': age,
};
}
}
Dans cet exemple, la classe DatabaseService
gère l'accès à la base de données SQLite. Les méthodes insertPerson
, getPersons
, updatePerson
et deletePerson
permettent respectivement d'ajouter, de récupérer, de mettre à jour et de supprimer des enregistrements de la table persons
. La classe Person
représente un enregistrement de la table avec les propriétés id
, name
et age
.
Dernière mise à jour