Requêtes

1. Récupération

Pour créer une requête destinée à récupérer l’intégralité des éléments d’une TableQuery[T], on utilise la méthode result.

Dans notre exemple, cela correspond à la requête SQL suivante :

println(utilisateurs.result.statements.mkString("\n")) 
// select "ID", "NOM", "PRENOM", "AGE", "EMAIL" from 
"UTILISATEURS" 

Lorsqu’on récupère tous les éléments de la table utilisateurs, on obtient les trois éléments créés lors de l’initialisation.

val recuperation = db.run(utilisateurs.result).map { result => 
 println(s"${result.length} utilisateurs enregistrés") 
 result.foreach(println) 
} 
// recuperation: scala.concurrent.Future[Unit] = Future(<not 
completed>) 
 
Await.result(recuperation, Duration.Inf) 
// 3 utilisateurs enregistrés 
// (1,Dubois,Some(Dimitri),29,ddubois@test.fr) 
// (2,Mercier,None,72,lmercier@test.fr) 
// (3,Polka,Some(Marie),65,mpolka@test.fr) 

On utilise la méthode map sur le lancement de chaque requête pour récupérer le résultat et l’imprimer dans la console.

Pour récupérer uniquement un ou plusieurs champs, on utilise la méthode map sur le result et on renvoie le ou les champs souhaités. Future:map

Dans notre...

couv_EPSCALA.png

Découvrez 

le livre :

Aussi inclus dans nos :

Précédent
Tables
Suivant
Depuis la console REPL