Le client envoie la même instruction de requête SQL au serveur de base de données. Si vous accédez à la base de données à chaque fois, cela entraînera une dégradation des performances.
Alors, comment s'améliorer?
Mybatis nous fournit une stratégie pour le cache de niveau 1
Entre l'ouverture et la fermeture d'une SQLSession, l'objet SQLSession (en fait un exécuteur testamentaire) maintiendra un objet mis en cache. Lorsque vous interrogez les données, recherchez d'abord si les données existent du cache, et si elles existent, elles seront récupérées directement. S'il n'existe pas, envoyez une requête SQL à la base de données, puis stockez les données interrogées dans le cache et renvoyez-la au programme.
Cela aura un problème:
Si un programme modifie les données de la base de données à vérifier pendant la première et la deuxième requête, elle entraînera une erreur de lecture, c'est-à-dire, c'est-à-dire,
Dirty Reading est en fait MyBatis effacera le cache après avoir exécuté la méthode commit () dans SQLSession. La deuxième fois que je vais à la question, je vais toujours interroger dans la base de données.
Vous pouvez également appeler manuellement la méthode clearcache () de SQLSession pour effacer le cache
Petits exemples:
@Test public void testCacheever1 () lève une exception {SQLSession Session = Factory.OpenSession (); UserMapper Mapper = session.getMapper (userMapper.class); // La première demande consiste à interroger l'utilisateur avec l'identifiant 1 utilisateur utilisateur = mapper.FindUserById (1); System.out.println (utilisateur); // Modifie les données, le cache sera effacé user.SetUserName ("Yyyy"); mapper.updateUser (utilisateur); session.Commit (); // La deuxième requête recherchera l'utilisateur utilisateur2 = mapper.finDuserById (1); System.out.println (User2); session.close (); }question:
Si SQLSession est fermée, le cache sera effacé. Comment utilisez-vous le cache pour améliorer l'efficacité?
D'accord, le prochain article vous présente le cache MyBatis Level 2.
Ce qui précède est le cache de premier niveau MyBatis introduit par l'éditeur. J'espère que ce sera utile à tout le monde. Si vous avez des questions, veuillez me laisser un message et l'éditeur répondra à tout le monde à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!