diff --git a/README.md b/README.md
index 7c460a86fbb7627174d898b44e1cfa9fdfe15689..65c2f116d20c1804bc110c10272ad1ba33fa6d13 100644
--- a/README.md
+++ b/README.md
@@ -46,7 +46,7 @@ On peut constater un certain nombre de changements par rapport au TP précédent
 3. Une classe `BDDFactory` est fournie qui gère la connexion à la base de donnée
 4. La configuration de l'affichage des logs est maintenant géré par un fichier de configuration externe `logging.properties`
 
-## Un petit test manuel pour démarrer...
+## Test manuel et découverte du code
 Avant de commencer à compléter le code fournit, nous allons tester un petit peu :
 
 Dans un terminal, lancez le serveur avec la commande `mvn compile exec:java`.
@@ -76,3 +76,36 @@ Content-Length: 100
 
 [{"description":"tester la création","id":"4ba24fd7-5856-4678-8f9e-84802e3334dd","nom":"tâche 1"}]
 ~~~
+
+On peut également vérifier la présence de nos données dans la base de données (̀ sqlite`) :
+
+~~~
+$ sqlite3 /tmp/peter_todo.db 
+SQLite version 3.33.0 2020-08-14 13:23:32
+Enter ".help" for usage hints.
+sqlite> select * from taches;
+4ba24fd7-5856-4678-8f9e-84802e3334dd|tâche 1|tester la création
+~~~
+
+Les opérations de manipulation de la table `taches` sont définies dans la classe `TacheDAO` avec des annotations (JDBI)[https://jdbi.org/#_sql_objects] :
+
+~~~java
+public interface TacheDAO {
+    @SqlUpdate("create table if not exists taches (id varchar(128) primary key, nom varchar not null, description varchar)")
+    void createTable();
+
+    @SqlUpdate("drop table if exists taches")
+    void dropTable();
+
+    @SqlUpdate("insert into taches (id, nom, description) values (:id, :nom, :description)")
+    int insert(@BindBean Tache tache);
+
+    @SqlQuery("select * from taches")
+    @RegisterBeanMapper(Tache.class)
+    List<Tache> getAll();
+}
+~~~
+
+Ce DAO est utilisé dans la classe `Tache` qui représente une tâche particulière. Les tâches sont manipulées via la classe `TodoService`.
+
+Si vous regardez le code de la classe `Tache`, vous constaterez que nous avons choisi d'identifier les tâches au moyen un identifiant unique ((UUID)[https://fr.wikipedia.org/wiki/Universally_unique_identifier]). Comme ce type n'est pas géré nativement par JDBI, nous avons dû utiliser une (mécanisme d'extension)[https://jdbi.org/#_custom_arguments] permettant la conversion entre le type `java.util.UUID` et `String` (classes `UUIDArgument` et `UUIDArgumentFactory`).