recherche

Maison  >  Questions et réponses  >  le corps du texte

java - 关于mybatis和hibernate的困惑

谢谢

巴扎黑巴扎黑2806 Il y a quelques jours1634

répondre à tous(19)je répondrai

  • 天蓬老师

    天蓬老师2017-04-18 09:34:16

    Vous pouvez essayer : http://www.oschina.net/p/monalisa-core Il est plus pratique à utiliser avec le plug-in Eclipse :

    .
    • Prend en charge la génération automatique de DTO

      Les requêtes SQL n'ont pas besoin d'écrire des DTO comme Mybatis, puis de configurer un tas de mappages de champs. Le plug-in fait tout cela automatiquement pour vous.
      Article de référence : Comment générer automatiquement des DTO basés sur du code SQL dynamique.

    • Syntaxe de chaîne multiligne

      Écrire des chaînes multilignes en code Java devient très simple.

    • Opérations DataTable

      DataTable peut être utilisé pour interroger des tables de base de données avec une sélection de champs, un filtrage, une agrégation, un regroupement, JOIN, etc. pratiques.

    répondre
    0
  • 大家讲道理

    大家讲道理2017-04-18 09:34:16

    hibernate convient aux ajouts, suppressions et modifications d'une seule table, et l'efficacité du développement est très élevée. Cependant, une fois que l'entreprise se développe ou que la conception db originale n'est pas bonne, vous devez rejoindre la table. requête (car l'idée d'hibernation est de classer la table, mais dans la vraie vie, il n'est pas facile d'obtenir une généralisation complète au début d'un projet) Des résultats différents ainsi que la suppression et la correspondance réduiront l'efficacité (sauf si vous écrivez sql, mais de cette façon, il est préférable d'utiliser mybatis au début), surtout lorsque vous rencontrez de grandes quantités de données, l'efficacité chutera de façon exponentielle.
    Pas plus de 100 utilisateurs ? , l'ordre de grandeur ici n'est pas calculé sur la base d'un seul tableau. Si un seul tableau dépasse une certaine quantité de données, il ne peut pas être résolu en utilisant simplement hibernate ou mybatis. à changer si vous utilisez mybatis. D'après mon expérience, s'il s'agit d'un grand nombre de requêtes de table de jointure et que l'affaire est complexe (c'est généralement le cas jusqu'à la fin du projet), il est préférable d'utiliser mybatis les requêtes simples sont plus rapides que hibernate. (开发效率)

    répondre
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:34:16

    Le coût d'apprentissage de la mise en veille prolongée est relativement élevé, mais il existe des spécifications JPA dans j2ee, et l'apprentissage des spécifications est acceptable. Mybatis est relativement simple, facile à utiliser et contrôlable. Hibernate a des coûts d'apprentissage élevés, est trop orienté objet et est difficile à régler. Quant à l'utilisation, cela dépend de chacun. Pour les applications toB ou toC, je préfère mybatis, mais pour la gestion backend, hibernate c'est bien

    répondre
    0
  • 天蓬老师

    天蓬老师2017-04-18 09:34:16

    Merci pour l'invitation ! Les réponses suivantes sont toutes très bonnes. Premièrement, MyBatis est facile à apprendre. Deuxièmement, il est flexible et facile à contrôler en écrivant directement du SQL. Quant aux performances, ce n'est pas l'efficacité du développement et la maintenabilité qui sont bien plus importantes que les performances. .

    répondre
    0
  • ringa_lee

    ringa_lee2017-04-18 09:34:16

    hiberbate utilise des objets Java pour écrire du SQL, tandis que mybatis écrit directement du SQL natif. Le premier est amusant à développer pendant un certain temps et entretient le crématorium (modification) ; le second nécessite une certaine compréhension des connaissances SQL (par rapport au premier si l'entreprise dispose d'un DBA, il est beaucoup plus intuitif pour lui de lire en natif). SQL que le code Java. Quant aux performances, dans la plupart des cas, il n'est pas nécessaire d'en tenir compte (si vous voulez vraiment y réfléchir, vous pouvez rechercher "supprimer ORM" dont certaines personnes ont discuté ces dernières années. La chose la plus importante est la maintenabilité).

    répondre
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:34:16

    Hibernate et mybatis ne sont que des encapsulations de JDBC. Le fait que les performances du programme soient bonnes ou non dépend principalement du fait que le SQL soit bien écrit et que la conception de la base de données soit raisonnable. Bien sûr, de nombreux SQL en veille prolongée sont implémentés par programme. les deux frameworks sont tous très compétents, et il ne devrait pas y avoir beaucoup de différence de performances lorsqu'ils sont utilisés. Ensuite, le problème vient du fait qu'Hibernate est trop encapsulé, et il est en fait assez difficile de le maîtriser. , et le coût d'apprentissage est faible. De plus, la mise en veille prolongée est utilisée dans de nombreux scénarios. Si vous n'êtes pas particulièrement compétent, le programme que vous écrivez aura parfois des situations inattendues et ne fera pas grand-chose. les résultats du programme sont généralement plus faciles à prévoir.
    Les deux frameworks sont en fait très bien conçus, mais les habitudes d'utilisation personnelles sont plus importantes. Les personnes habituées à mybatis auront généralement du mal à passer en veille prolongée. En revanche, les personnes qui maîtrisent vraiment la mise en veille prolongée ne le feront probablement pas. utilisez-le délibérément mybatis (humble opinion personnelle).

    répondre
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:34:16

    L'utilisation de Mybatis dans le travail réel n'est fondamentalement pas basée sur des considérations de performances ou de convivialité, mais sur des habitudes personnelles.
    Les vieux programmeurs comme nous sont habitués à écrire du SQL et se sentiraient mal à l'aise si nous ne l'écrivions pas. En revanche, une mise en veille prolongée trop automatisée peut nous faire paniquer.
    C'est tout.

    répondre
    0
  • 黄舟

    黄舟2017-04-18 09:34:16

    L'ayant utilisé pendant la phase d'apprentissage, mon sentiment personnel est que l'hibernation est trop encapsulée. Souvent, j’ai l’impression que cela n’apporte pas de commodité, mais que je dois effectuer des opérations apparemment inutiles afin de « m’adapter » à ce cadre.

    répondre
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:34:16

    Si le volume d'affaires est relativement faible, cela dépend de celui que vous maîtrisez le mieux. Tout ira bien. Pas besoin de s'inquiéter à ce sujet. Mybatis est plus flexible, donnant aux développeurs plus de marge pour leur propre implémentation. L'association d'hibernation devrait être la raison pour laquelle elle est légèrement plus lente.

    répondre
    0
  • Annulerrépondre