iBATIS est un framework de persistance créé en 2001 et hébergé par la fondation Apache. Il permet de mettre en correspondance des requêtes SQL et des instances d'objet.

Le l'équipe de développement a décidé de se déplacer de l'Apache Software Foundation vers Google Code en changeant le nom du projet vers MyBatis.

Principe modifier

Les requêtes SQL sont associées à des classes d'objets via des fichiers de définition XML. En d'autres termes, un SELECT en SQL via iBATIS renvoie directement l'instance (ou une liste d'instances le cas échéant) de l'objet correspondant.

Association entre objets et relations modifier

Les objets mis en correspondance avec une relation doivent pouvoir être construits, renseignés et consultés (par des méthodes du type consultation/modification d'attributs) tels que les JavaBeans.

L'association peut se faire quasiment automatiquement, iBatis analysant les types de part et d'autre et effectuant les conversions qui correspondent aux attributs des classes et aux attributs des relations mises en œuvre.

Il est également possible de définir les correspondances manuellement dans des cas plus complexes nécessitant par exemple des conversions à la volée. Une requête peut, de plus, prendre des paramètres selon une correspondance donnée (correspondance paramètre) et renvoyer des résultats dans une autre (correspondance de résultat) ou dans un type prédéfini du langage utilisé. Il peut enfin s'agir d'objets correspondance basées sur les noms des champs de la relation.

Une seconde analyse de la requête instanciée est également possible à condition d'être explicitement demandée (cela permet par exemple d'avoir une partie de requête dynamique).

L'utilisation d'espaces de noms permet de catégoriser les mises en correspondance en fonction des différents domaines mis en œuvre dans l'application.

Optimisation des accès modifier

iBATIS dispose de différents modèles de cache pour éviter de relancer une requête sur la base de données si ce n'est pas nécessaire (mémoire simple, dernier utilisé, etc).

Gestion de la transaction modifier

Il y a 4 manières de gérer la transaction :

  • Avec la gestion des exceptions
  • Classes anonymes permettant de gérer une transaction (Solution "sale")
  • Utilisation avec Spring : on applique un filtre sur le nom des méthodes et on exécute la gestion de la transaction sur un nom particulier
  • Possibilité de réaliser une gestion automatique avec un système de filtre s'exécutant avant et après chaque écran

Versions disponibles modifier

Le framework est disponible sous licence Apache v2.0 pour les langages suivants :

Voir aussi modifier

Articles connexes modifier

Liens externes modifier