Vertiefendes Verständnis des First-Level-Cache von Mybatis
Der Client sendet die gleiche SQL-Abfrageanweisung an den Datenbankserver. Wenn auf die Datenbank jedes Mal zugegriffen wird, wird die Leistung verringert.
Wie kann man sich also verbessern?
mybatis bietet uns eine Cache-Strategie der ersten Ebene
Zwischen dem Öffnen und Schließen einer sqlSession verwaltet das sqlSession-Objekt (eigentlich der Executor) zunächst ein zwischengespeichertes Objekt Durchsuchen Sie den Cache, um festzustellen, ob die Daten vorhanden sind. Wenn sie nicht vorhanden sind, senden Sie eine SQL-Abfrage an die Datenbank, speichern Sie die Abfragedaten im Cache und geben Sie sie an das Programm zurück.
Es wird ein Problem auftreten:
Wenn ein Programm während der ersten und zweiten Abfrage die Daten der abzufragenden Datenbank ändert, führt dies dazu, dass die gelesenen Daten falsch sind. Das heißt,
Dirty Reading. Tatsächlich löscht mybatis den Cache, nachdem die Methode commit() in sqlSession ausgeführt wurde. Bei der zweiten Abfrage erfolgt weiterhin eine Abfrage aus der Datenbank.
Sie können die Methode „clearCache()“ von sqlSession auch manuell aufrufen, um den Cache zu leeren.
Kleines Beispiel:
@Test public void testCacheLever1() throws Exception{ SqlSession session = factory.openSession(); UserMapper mapper = session.getMapper(UserMapper.class); //第一次请求,查询id为1的用户 User user = mapper.findUserById(1); System.out.println(user); //更改数据,会清空缓存 user.setUsername("yyyy"); mapper.updateUser(user); session.commit(); //第二次查询会从缓存中找 User user2 = mapper.findUserById(1); System.out.println(user2); session.close(); }
Problem:
Wenn sqlSession geschlossen ist, wird der Cache geleert. Wie kann Caching zur Effizienzsteigerung genutzt werden?
Okay, im nächsten Artikel stellen wir Ihnen den Second-Level-Cache von mybatis vor.
Das Obige ist der vom Herausgeber eingeführte Mybatis-Cache der ersten Ebene. Ich hoffe, er wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Herausgeber wird Ihnen rechtzeitig antworten. Ich möchte mich auch bei Ihnen allen für Ihre Unterstützung der chinesischen PHP-Website bedanken!
Für ein tieferes Verständnis der Artikel zum Mybatis First-Level-Cache beachten Sie bitte die chinesische PHP-Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Mit der Klassenbelastung von Java wird das Laden, Verknüpfen und Initialisieren von Klassen mithilfe eines hierarchischen Systems mit Bootstrap-, Erweiterungs- und Anwendungsklassenloadern umfasst. Das übergeordnete Delegationsmodell stellt sicher

In dem Artikel wird in der Implementierung von mehrstufigem Caching in Java mithilfe von Koffein- und Guava-Cache zur Verbesserung der Anwendungsleistung erläutert. Es deckt die Einrichtungs-, Integrations- und Leistungsvorteile sowie die Bestrafung des Konfigurations- und Räumungsrichtlinienmanagements ab

In dem Artikel werden mit JPA für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden erläutert. Es deckt Setup, Entity -Mapping und Best Practices zur Optimierung der Leistung ab und hebt potenzielle Fallstricke hervor. [159 Charaktere]

In dem Artikel werden Maven und Gradle für Java -Projektmanagement, Aufbau von Automatisierung und Abhängigkeitslösung erörtert, die ihre Ansätze und Optimierungsstrategien vergleichen.

In dem Artikel werden benutzerdefinierte Java -Bibliotheken (JAR -Dateien) mit ordnungsgemäßem Versioning- und Abhängigkeitsmanagement erstellt und verwendet, wobei Tools wie Maven und Gradle verwendet werden.
