Maison  >  Article  >  Java  >  Quelle est la différence entre le cache de premier niveau mybatis et le cache de deuxième niveau ?

Quelle est la différence entre le cache de premier niveau mybatis et le cache de deuxième niveau ?

coldplay.xixi
coldplay.xixioriginal
2021-01-22 10:37:3548050parcourir

La différence entre le cache de premier niveau et le cache de deuxième niveau de mybatis : 1. Le cache de premier niveau de Mybatis fait référence à SQLSession. La portée du cache de premier niveau est SQlSession. cache de premier niveau par défaut ; 2. Mybatis Le cache de deuxième niveau n'est pas activé par défaut.

Quelle est la différence entre le cache de premier niveau mybatis et le cache de deuxième niveau ?

L'environnement d'exploitation de cet article : système Windows 7, MyBatis version 3.5.6, ordinateur Dell G3.

La différence entre le cache de premier niveau et le cache de deuxième niveau de mybatis :

1) Le cache de premier niveau de Mybatis fait référence à SQLSession, et le la portée du cache de premier niveau est SQlSession, Mabits active le cache de premier niveau par défaut. Dans la même SqlSession, lors de l'exécution de la même requête SQL ; la première fois, elle interrogera la base de données et l'écrira dans le cache, et la deuxième fois, elle sera récupérée directement du cache. Lorsque SQL est exécuté et que des ajouts, des suppressions et des modifications se produisent entre les deux requêtes, le cache SQLSession sera vidé.

Chaque requête recherchera d'abord dans le cache. Si elle ne peut pas être trouvée, elle interrogera la base de données et écrira les résultats dans le cache. Le cache interne de Mybatis utilise un HashMap et la clé est l'instruction hashcode+statementId+sql. La valeur est l'objet Java mappé au jeu de résultats de la requête. Une fois que SqlSession a effectué l'insertion, la mise à jour, la suppression et d'autres opérations de validation, le cache SQLSession sera vidé.

2) Cache de deuxième niveau Le cache de deuxième niveau est au niveau du mappeur Mybatis n'active pas le cache de deuxième niveau par défaut. La première fois que le SQL sous le mappeur est appelé pour interroger les informations de l'utilisateur, les informations interrogées seront stockées dans la zone de cache de deuxième niveau correspondant au mappeur. Lors du deuxième appel au fichier de mappage du mappeur sous l'espace de noms, le même SQL est utilisé pour interroger les informations utilisateur et les résultats seront récupérés du cache de deuxième niveau correspondant.

Quelle est la différence entre le cache de premier niveau mybatis et le cache de deuxième niveau ?

Recommandations associées : tutoriel d'introduction à Java

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn