La différence entre Mybatis et Ibatis:
1. MyBatis implémente la liaison de l'interface, ce qui le rend plus pratique d'utiliser <br /> dans ibatis2.x, nous devons spécifier à quel fichier de mappage XML correspond à 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, ce qui le rend plus facile à utiliser et plus pratique.
Cela peut être considéré comme l'amélioration la plus importante de Mybatis.
Avis:
Bien que MyBatis prenne en charge l'utilisation de la configuration d'annotation directement dans l'interface pour simplifier la configuration,
Cependant, il est fortement recommandé d'utiliser toujours la méthode de configuration XML. Après tout, la méthode de configuration de l'annotation est limitée et le code est trop invasif. Ce n'est qu'en utilisant la méthode de configuration XML que les avantages de Mybatis peuvent être reflétés
2. L'amélioration de la cartographie des relations d'objets est plus efficace <br /> Je crois que de nombreux amis qui utilisent ibatis2.x ne réalisent pas la cartographie des relations entre les objets via le fichier de mappage XML d'Ibatis. En fait, il n'est pas nécessaire de le faire, car Ibatis2.x utilise la "requête du cou" pour réaliser la relation entre les objets par l'assemblage direct des instructions de requête, et son effet est le même que l'encapsulation dans DAO ou service.
Cependant, cette méthode a "N + 1 Problème de requête".
En résumé, le problème de requête N + 1 peut être causé comme ceci:
? Vous exécutez une instruction SQL distincte pour obtenir la liste de résultats (c'est-à-dire +1).
? Pour chaque enregistrement renvoyé, vous exécutez une instruction de requête pour charger les détails de chaque chargement (c'est-à-dire n).
Ce problème peut entraîner l'exécution de centaines 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 en cou" dans Ibatis2.x, il fournit également une méthode directe "Résultat coulé", qui équivaut à encapsulation automatique de l'objet DTO interrogé dans l'objet requis par une phrase de SQL.
Pour des méthodes de mise en œuvre spécifiques, veuillez vous référer au manuel d'utilisation officiel de MyBatis par vous-même et ne pas les décrire ici.
Cependant, en fait, les avantages apportés par cette amélioration sont 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 ne peut pas être pagin. Cela a été clairement restreint dans le cadre MyBatis (34 lignes dans org.apache.ibatis.execUtor.ResultSet.NestedResultSethandler), et il y a de nombreux cas où la pagination est requise dans les projets réels ...
Si vous y pensez attentivement, le mappage un-à-plusieurs ne peut pas passer à travers des fichiers de configuration, car le nombre d'enregistrements interrogés pour le moment n'égmente pas la taille de l'objet de retour réel, mais je ne comprends pas pourquoi la cartographie un à un n'est pas autorisée. C'est peut-être parce qu'un à un est un cas spécial un à plusieurs, et lors de la conception du cadre, il n'est pas considéré ou difficile de traiter ce cas spécial.
3. Mybatis utilise des expressions puissantes basées sur OGNL pour éliminer d'autres éléments <BR /> Les personnes qui connaissent Struts2 ne devraient pas être familières avec les expressions OGNL.
MyBatis utilise les expressions OGNL pour simplifier la complexité des fichiers de configuration et est plus simple à utiliser.
Peut-être que c'est plus inquiet
MyBatis implémente la liaison de l'interface, ce qui le rend plus pratique à utiliser.
Ibatis / Mybatis 3 fournit une nouvelle fonctionnalité: Annotation.