Fichiers xml de mapping, annotations JPA, Hibernate, HQL Criteria... Voila avec quoi doivent jongler les développeurs Java pour accéder à une base de données.
Résultat :
- un long apprentissage pour maitriser tout ça
- le développeur est éloigné du SQL, bugs et problèmes de performances sont inévitables
- la plupart des problèmes ne sont identifiés qu'à l'exécution, en cours de développement, il n'y a aucune vérification de la cohérence des développements avec la structure de la base
Squill propose une approche radicalement différente :
- une tache ant génère un ensemble de classe correspondant aux tables de la base
- le développeur utilise ces classes qui offrent des méthodes correspondant aux différentes instructions SQL
Les avantages sont énormes :
- Le développeur code pratiquement du SQL
- Aucun SQL généré automatiquement
- Tout est vérifié à la compilation (ex : si on supprime une colonne, on a une erreur de compilation !)
- Autocompletion
Enfin tout ça, c'est la théorie. Pour l'instant ce n'est que de la version beta, mais j'aime beaucoup l'idée.