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

java - Requête associée à Mybatis

Dans le développement réel, les requêtes associées Mybatis un-à-plusieurs et plusieurs-à-plusieurs utilisent la référence resultMap, la référence javaType ou la référence select Laquelle a les meilleures performances ?
Le chargement différé avec select améliorera-t-il la vitesse et les performances des requêtes ?

ringa_leeringa_lee2702 Il y a quelques jours649

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

  • 漂亮男人

    漂亮男人2017-05-27 17:43:50

    mybatis propose trois solutions pour gérer les situations un-à-plusieurs :

    1. Rejoignez la sous-table lors de l'interrogation, puis remettez-la à mybatis pour l'assemblage

    2. Ne rejoignez pas la sous-table lors de l'interrogation et lancez une sélection pour capturer les données de la sous-table

    3. est similaire au second, sauf que fetchType=lazy est utilisé pour retarder le timing de l'exploration

    Chacune de ces trois options a ses propres problèmes :

    1. La première solution a deux défauts : 1) Elle n'est pas précise lors des requêtes de pagination, 2) S'il y a beaucoup de sous-tables associées, le produit cartésien sera très grand

      #🎜 🎜#
    2. La deuxième option aura 1+N requêtes, et le nombre de SQL initiés sera très effrayant

    3. La troisième solution semble améliorer l'efficacité de la première requête, mais si vous obtenez la propriété paresseuse dans la boucle, il n'y a aucune différence avec la deuxième solution

    Par conséquent, s'il y a des exigences de performances, nous devons assembler nous-mêmes la collection un-à-plusieurs. La solution consiste à collecter les ID de la table principale et à lancer une requête unique pour capturer les données de tous les sous. -des tables. Sortez et assemblez-le manuellement. Le nombre de requêtes initiées de cette manière est de 1+1.

    répondre
    0
  • Annulerrépondre