Maison > php教程 > PHP开发 > La différence entre Mybatis et Ibatis

La différence entre Mybatis et Ibatis

高洛峰
Libérer: 2017-01-05 17:18:23
original
2274 Les gens l'ont consulté

La différence entre Mybatis et Ibatis :
1. Mybatis implémente la liaison d'interface, qui est plus pratique à utiliser
Dans ibatis2.x, nous devons spécifier quel fichier de mappage XML correspond au fichier de mappage XML spécifique. dans la classe d'implémentation DAO.
Mybatis implémente la liaison de l'interface DAO et du fichier de mappage XML, et génère automatiquement l'implémentation spécifique de l'interface pour nous, la rendant plus simple et plus pratique à utiliser.
Cela peut être considéré comme l'amélioration la plus importante de Mybatis.

Remarque :
Bien que Mybatis prenne en charge l'utilisation de la configuration des annotations directement dans l'interface pour simplifier la configuration,
il est fortement recommandé de toujours utiliser la configuration XML. Après tout, la méthode de configuration des annotations a des fonctions limitées et le code est trop intrusif. Ce n'est qu'en utilisant la méthode de configuration XML que les avantages de Mybatis peuvent être reflétés

2. Amélioration du mappage objet-relationnel et plus d'efficacité
Je crois que de nombreux amis qui utilisent ibatis2.x ne l'ont pas implémenté via Fichier de mappage XML d'ibatis Cartographie des relations entre les objets. En fait, cela n'est vraiment pas nécessaire, car ibatis2.x utilise la méthode "requête imbriquée" pour réaliser la relation entre les objets via l'assemblage direct d'instructions de requête. L'effet est le même que si vous l'encapsuliez dans DAO ou Service.
Cependant, cette méthode présente le "problème de requête N 1".
En un mot, le problème de requête N 1 peut être causé par :
 ? Vous avez exécuté une seule instruction SQL pour obtenir la liste de résultats (qui est 1).
 ? Pour chaque enregistrement renvoyé, vous exécutez une requête pour charger les détails de chacun (qui est N).
Ce problème entraînera l'exécution de centaines ou de milliers d'instructions SQL. Ce n’est généralement pas prévu.

Dans Mybatis, en plus d'être compatible avec la méthode "requête imbriquée" dans ibatis2 L'objet dto est automatiquement encapsulé dans l'objet requis.
Veuillez vous référer au manuel d'utilisation officiel de Mybatis pour les méthodes de mise en œuvre spécifiques, qui ne seront pas décrites ici

Cependant, en fait, les avantages de cette amélioration sont également très limités. Parce que cette méthode ne fonctionne pas lors de l'utilisation de la pagination, ou que l'ensemble de résultats d'objets imbriqués n'autorise pas la pagination. Ce point a été clairement restreint dans le framework Mybatis (ligne 34 dans org.apache.ibatis.executor.resultset.NestedResultSetHandler), et il existe de nombreux cas où la pagination est requise dans les projets réels...
Réfléchissez bien, Il est vrai que le mappage un-à-plusieurs ne peut pas être paginé dans le fichier de configuration, car le nombre d'enregistrements interrogés à ce moment-là n'est pas égal à la taille de l'objet renvoyé réel, mais il n'est pas clair pourquoi un-à-un le mappage n’est pas autorisé. C'est peut-être parce que le un-à-un est un cas particulier de un-à-plusieurs, et lors de la conception du cadre, il n'a pas été pris en compte ou difficile de gérer ce cas particulier.

3. MyBatis utilise de puissantes expressions basées sur OGNL pour éliminer d'autres éléments
Les personnes familiarisées avec struts2 doivent être familiarisées avec les expressions OGNL
MyBatis utilise des expressions OGNL pour simplifier la configuration La complexité du fichier est plus simple. à utiliser.

Ce qui vous préoccupe peut-être davantage, c'est que
Mybatis implémente la liaison d'interface, qui est plus pratique à utiliser.
iBatis/MyBatis 3 apporte une nouvelle fonctionnalité : les annotations.


Pour plus d'articles sur la différence entre Mybatis et Ibatis, veuillez faire attention au site Web PHP chinois !


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Recommandations populaires
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal