Heim Java javaLernprogramm Detaillierte Erläuterung der MyBatis-Codebeispiele zu Cache-Problemen der zweiten Ebene

Detaillierte Erläuterung der MyBatis-Codebeispiele zu Cache-Problemen der zweiten Ebene

Mar 24, 2017 am 10:34 AM

In diesem Artikel wird hauptsächlich das Problem von MyBatis mit dem Cache der zweiten Ebene vorgestellt. Der Cache der zweiten Ebene ist ein Cache mit mehreren SQL-Anweisungen, der denselben Mapper betreibt Cache der zweiten Ebene Es kann gemeinsam genutzt werden. MyBatis bietet Cache der ersten Ebene und Cache der zweiten Ebene. Der Cache der ersten Ebene ist ein Cache auf SQL-Sitzungsebene. Die Caches zwischen verschiedenen SQL-Sitzungen beeinflussen sich nicht gegenseitig. Der Cache der zweiten Ebene ist ein Cache der Mapper-Ebene. Mehrere sqlSessions werden auf demselben Mapper ausgeführt, und sein Cache der zweiten Ebene kann gemeinsam genutzt werden.


MyBatis bietet eine Vielzahl von Second-Level-Cache-Lösungen zur Auswahl. Unter anderem ist die Unterstützung für

Memcached

relativ ausgereift. Wir werden nun Memcached als Beispiel nehmen, um die Integration mit dem Spring-Projekt vorzustellen.

Verwenden Sie die Konfiguration

, um pom.

xml

zu konfigurieren und Abhängigkeiten hinzuzufügen.

<dependencies>
 ...
 <dependency>
  <groupId>org.mybatis.caches</groupId>
  <artifactId>mybatis-memcached</artifactId>
  <version>1.0.0</version>
 </dependency>
 ...
</dependencies>
Nach dem Login kopieren
Globaler Schalter

<settings>
  <setting name="cacheEnabled" value="true"/>
</settings>
Nach dem Login kopieren
Konfigurieren Sie die Mapper.xml, die zwischengespeichert werden muss

Der zweite Da der Level-Cache Mapper Level ist, können Sie den Second-Level-Cache für bestimmte Mapper.xml aktivieren. Nachdem

aktiviert wurde, werden alle ausgewählten Anweisungen im Mapper standardmäßig zwischengespeichert. Alle Einfüge-, Aktualisierungs- und Löschanweisungen unter diesem
<mapper namespace="org.acme.FooMapper">
 <cache type="org.mybatis.caches.memcached.MemcachedCache" />
</mapper>
Nach dem Login kopieren
Namespace

führen dazu, dass der Cache im Speicherplatz gespeichert wird zwischengespeichert werden. Cache kann für eine bestimmte Anweisung deaktiviert werden.

kann auch eine Aktualisierungsaktion für eine bestimmte Anweisung auslösen (Standard entspricht allen Anweisungen zum Einfügen,
 <select id="retObj" resultMap="results" useCache="false" >
   select id, name, sex from employee  
 </select>
Nach dem Login kopieren
Aktualisieren

und Löschen).

Konfigurationsparameter werden in memcached.properties festgelegt. Wenn sie fehlen, werden die Standardeinstellungen verwendet.
 <select id="retObj" resultMap="results" flushCache="true" >
   select id, name, sex from employee  
 </select>
Nach dem Login kopieren

Die folgenden Konfigurationsparameter sind:

Wenn Sie Cache-Vorgangsprotokolle aufzeichnen müssen, können Sie dies durch die folgende Konfiguration erreichen

<mapper namespace="org.acme.FooMapper">
 <cache type="org.mybatis.caches.memcached.LoggingMemcachedCache" />
 ...
</mapper>
Nach dem Login kopieren

HinweiseIn Memcached zwischengespeicherte Klassen müssen die Serializable-Schnittstelle implementieren, andernfalls wird der Fehler java.io.NotSerializableAusnahme

wird gemeldet.


L2-Cache-Anwendungsszenarien

Es wird empfohlen, L2-Cache für Daten mit hoher Abfragehäufigkeit und geringer Änderungshäufigkeit zu verwenden.
  1. Für viele Abfrageanfragen und Benutzer, die keine hohen Anforderungen an Echtzeit-Abfrageergebnisse haben, kann die Second-Level-Caching-Technologie von mybatis verwendet werden, um den Datenbankzugriff zu reduzieren und die Zugriffsgeschwindigkeit zu verbessern wie zum Beispiel: Zeitaufwändige statistische Analyse SQL, Telefonrechnungsabfrage SQL usw.
  2. Die Implementierungsmethode ist wie folgt:

Durch das Festlegen des Aktualisierungsintervalls löscht mybatis den Cache automatisch in bestimmten Abständen Datenänderungen Frequenzeinstellung Cache-Aktualisierungsintervall FlushInterval kann beispielsweise je nach Bedarf auf 30 Minuten, 60 Minuten, 24 Stunden usw. eingestellt werden.

Mybatis-Einschränkungen

Der Mybatis-Cache der zweiten Ebene implementiert feinkörniges Caching auf Datenebene nicht gut.

Zum Beispiel die folgenden Anforderungen: Zwischenspeicherung von Produktinformationen. Da der Zugriff auf Produktinformationen umfangreich ist, müssen Benutzer zu diesem Zeitpunkt jedes Mal die neuesten Produktinformationen abfragen, wenn Sie die zweite Version verwenden -Level-Cache von mybatis Es ist unmöglich zu erreichen, dass bei einer Produktänderung nur die Cache-Informationen des Produkts aktualisiert werden, ohne die Informationen
anderer

Produkte zu aktualisieren, da der Cache-Bereich der zweiten Ebene von ​​mybaits ist in Mapper unterteilt. Wenn sich die Informationen eines Produkts ändern, werden alle

Cache-Daten der Nachricht aktualisiert. Die Lösung solcher Probleme erfordert eine gezielte Zwischenspeicherung von Daten basierend auf den Anforderungen auf der Geschäftsebene.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der MyBatis-Codebeispiele zu Cache-Problemen der zweiten Ebene. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

iBatis vs. MyBatis: Welches ist besser für Sie? iBatis vs. MyBatis: Welches ist besser für Sie? Feb 19, 2024 pm 04:38 PM

iBatis vs. MyBatis: Wofür sollten Sie sich entscheiden? Einführung: Mit der rasanten Entwicklung der Java-Sprache sind viele Persistenz-Frameworks entstanden. iBatis und MyBatis sind zwei beliebte Persistenz-Frameworks, die beide eine einfache und effiziente Lösung für den Datenzugriff bieten. In diesem Artikel werden die Funktionen und Vorteile von iBatis und MyBatis vorgestellt und einige spezifische Codebeispiele gegeben, die Ihnen bei der Auswahl des geeigneten Frameworks helfen. Einführung in iBatis: iBatis ist ein Open-Source-Persistenz-Framework

Ausführliche Erläuterung der Funktion „Tag festlegen' in den dynamischen SQL-Tags von MyBatis Ausführliche Erläuterung der Funktion „Tag festlegen' in den dynamischen SQL-Tags von MyBatis Feb 26, 2024 pm 07:48 PM

Interpretation der dynamischen SQL-Tags von MyBatis: Detaillierte Erläuterung der Verwendung von Set-Tags. MyBatis ist ein hervorragendes Persistenzschicht-Framework. Es bietet eine Fülle dynamischer SQL-Tags und kann Datenbankoperationsanweisungen flexibel erstellen. Unter anderem wird das Set-Tag zum Generieren der SET-Klausel in der UPDATE-Anweisung verwendet, die sehr häufig bei Aktualisierungsvorgängen verwendet wird. In diesem Artikel wird die Verwendung des Set-Tags in MyBatis ausführlich erläutert und seine Funktionalität anhand spezifischer Codebeispiele demonstriert. Was ist Set-Tag? Set-Tag wird in MyBati verwendet

Verschiedene Möglichkeiten, Batch-Löschvorgänge in MyBatis zu implementieren Verschiedene Möglichkeiten, Batch-Löschvorgänge in MyBatis zu implementieren Feb 19, 2024 pm 07:31 PM

Mehrere Möglichkeiten zur Implementierung von Batch-Löschanweisungen in MyBatis erfordern spezifische Codebeispiele. Aufgrund der zunehmenden Datenmenge sind Batch-Operationen in den letzten Jahren zu einem wichtigen Bestandteil von Datenbankoperationen geworden. In der tatsächlichen Entwicklung müssen wir häufig Datensätze in der Datenbank stapelweise löschen. Dieser Artikel konzentriert sich auf verschiedene Möglichkeiten zur Implementierung von Batch-Löschanweisungen in MyBatis und stellt entsprechende Codebeispiele bereit. Verwenden Sie das foreach-Tag, um eine Stapellöschung zu implementieren. MyBatis stellt das foreach-Tag bereit, mit dem ein Satz problemlos durchlaufen werden kann.

Vergleichende Analyse der Funktionen und Leistung von JPA und MyBatis Vergleichende Analyse der Funktionen und Leistung von JPA und MyBatis Feb 19, 2024 pm 05:43 PM

JPA und MyBatis: Vergleichende Analyse von Funktion und Leistung Einführung: In der Java-Entwicklung spielt das Persistenz-Framework eine sehr wichtige Rolle. Zu den gängigen Persistenz-Frameworks gehören JPA (JavaPersistenceAPI) und MyBatis. In diesem Artikel wird eine vergleichende Analyse der Funktionen und Leistung der beiden Frameworks durchgeführt und spezifische Codebeispiele bereitgestellt. 1. Funktionsvergleich: JPA: JPA ist Teil von JavaEE und bietet eine objektorientierte Datenpersistenzlösung. Es wird eine Annotation oder X übergeben

Ausführliche Erklärung zur Verwendung von MyBatis-Batch-Löschanweisungen Ausführliche Erklärung zur Verwendung von MyBatis-Batch-Löschanweisungen Feb 20, 2024 am 08:31 AM

Für eine ausführliche Erläuterung der Verwendung von MyBatis-Batch-Löschanweisungen sind spezifische Codebeispiele erforderlich. Einführung: MyBatis ist ein hervorragendes Persistenzschicht-Framework, das umfangreiche SQL-Operationsfunktionen bietet. In der tatsächlichen Projektentwicklung stoßen wir häufig auf Situationen, in denen Daten stapelweise gelöscht werden müssen. In diesem Artikel wird die Verwendung von MyBatis-Batch-Delete-Anweisungen ausführlich vorgestellt und spezifische Codebeispiele angehängt. Verwendungsszenario: Beim Löschen einer großen Datenmenge in der Datenbank ist es ineffizient, die Löschanweisungen einzeln auszuführen. An dieser Stelle können Sie die Batch-Löschfunktion von MyBatis verwenden

Analysieren Sie den Caching-Mechanismus von MyBatis: Vergleichen Sie die Eigenschaften und die Verwendung des Caches der ersten Ebene und des Caches der zweiten Ebene Analysieren Sie den Caching-Mechanismus von MyBatis: Vergleichen Sie die Eigenschaften und die Verwendung des Caches der ersten Ebene und des Caches der zweiten Ebene Feb 25, 2024 pm 12:30 PM

Analyse des MyBatis-Caching-Mechanismus: Der Unterschied und die Anwendung von First-Level-Cache und Second-Level-Cache Im MyBatis-Framework ist Caching eine sehr wichtige Funktion, die die Leistung von Datenbankoperationen effektiv verbessern kann. Unter diesen sind der First-Level-Cache und der Second-Level-Cache zwei häufig verwendete Caching-Mechanismen in MyBatis. In diesem Artikel werden die Unterschiede und Anwendungen von First-Level-Cache und Second-Level-Cache im Detail analysiert und spezifische Codebeispiele zur Veranschaulichung bereitgestellt. 1. Level-1-Cache Der Level-1-Cache wird auch als lokaler Cache bezeichnet. Er ist standardmäßig aktiviert und kann nicht deaktiviert werden. Der Cache der ersten Ebene ist SqlSes

Interpretation und Best Practices der MyBatis Generator-Konfigurationsparameter Interpretation und Best Practices der MyBatis Generator-Konfigurationsparameter Feb 23, 2024 am 09:51 AM

MyBatisGenerator ist ein offiziell von MyBatis bereitgestelltes Codegenerierungstool, mit dem Entwickler schnell JavaBeans, Mapper-Schnittstellen und XML-Zuordnungsdateien generieren können, die der Datenbanktabellenstruktur entsprechen. Bei der Verwendung von MyBatisGenerator zur Codegenerierung ist die Einstellung der Konfigurationsparameter von entscheidender Bedeutung. Dieser Artikel beginnt aus der Perspektive der Konfigurationsparameter und untersucht eingehend die Funktionen von MyBatisGenerator.

Ausführliche Erläuterung der Eins-zu-Viele-Abfragekonfiguration von MyBatis: Lösung häufiger verwandter Abfrageprobleme Ausführliche Erläuterung der Eins-zu-Viele-Abfragekonfiguration von MyBatis: Lösung häufiger verwandter Abfrageprobleme Feb 22, 2024 pm 02:18 PM

Ausführliche Erläuterung der Eins-zu-Viele-Abfragekonfiguration von MyBatis: Um häufig auftretende Abfrageprobleme zu lösen, sind spezifische Codebeispiele erforderlich. Bei der tatsächlichen Entwicklungsarbeit stoßen wir häufig auf Situationen, in denen wir das Hauptentitätsobjekt und die damit verbundenen mehreren Slave-Entitätsobjekte abfragen müssen . In MyBatis ist die Eins-zu-viele-Abfrage eine gängige Datenbankzuordnungsabfrage. Bei korrekter Konfiguration können die Abfrage, Anzeige und Bedienung verknüpfter Objekte problemlos realisiert werden. In diesem Artikel wird die Konfigurationsmethode für Eins-zu-Viele-Abfragen in MyBatis vorgestellt und erläutert, wie einige häufig auftretende Abfrageprobleme gelöst werden

See all articles