java - Requête associée à Mybatis
ringa_lee
ringa_lee 2017-05-27 17:41:50
0
1
707

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_lee
ringa_lee

ringa_lee

répondre à tous(1)
漂亮男人

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.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal