Le framework SALT dispose de deux APIs pour exécuter des requêtes sur les objets mappés :
- L'API SQL qui consiste à écrire le texte des requêtes SQL
et utiliser la méthode
DBHelper::execSQL
pour l'exécuter (conseillé et disponible depuis la version 2+)
Avantages : Pas d'apprentissage, utilisation directe de SQL. Meilleure lisibilité.
Inconvénients : Pas de mapping automatique, c'est au développeur de gérer les conversions de dates et de booléens.
- L'API Query
(SELECT,
INSERT,
UPDATE,
DELETE) et les méthodes
DBHelper::execQuery/execInsert/execUpdate/execDelete
Avantages : Mapping automatique des dates et des booléens. Contrôles renforcés lors de l'écriture de la requête.
Inconvénients : Cette API demande un apprentissage, les requêtes devant être "construites". Les requêtes sont plus difficiles à maintenir car moins lisibles.
Cette API est historique, mais elle va à l'encontre de la philosophie du framework SALT :
- Elle nécessite l'apprentissage d'un mini langage
- Elle produit des requêtes qui sont moins "simples" à comprendre que du texte SQL
Dans le cas où le framework ne permettrait pas de construire une requête complexe avec l'API Query,
il est conseillé de ne pas essayer de faire une requête "hybride" avec les 2 API, mais d'utiliser uniquement l'API SQL.
Présentation
Cette API fonctionne en écrivant chaque requête avec la classe
Query
où l'une de ses classes filles.
Le but est de rationnaliser au maximum les requêtes afin de pouvoir utiliser les méta données des champs pour simplifier l'écriture de la requête.
Cette API gère automatiquement :
- Les noms des tables, colonnes et alias
- Les conversions des types DATE et BOOLEAN
- Les placeholders des variables
- Le nombre de lignes modifiées pour les types UPDATE INSERT DELETE