Der Client sendet dieselbe SQL -Abfrageanweisung an den Datenbankserver. Wenn Sie jedes Mal auf die Datenbank zugreifen, führt dies zu einem Abbau der Leistung.
Wie kann man sich verbessern?
MyBatis bietet uns eine Strategie für Level 1 -Cache
Zwischen dem Öffnen und Schließen einer SQLSession wird das SQLSession -Objekt (tatsächlich ein Testamentsvollstrecker) ein zwischengespeichertes Objekt beibehalten. Achten Sie beim Abfragen von Daten zunächst, ob die Daten aus dem Cache vorhanden sind und ob sie vorhanden sind, sie wird direkt abgerufen. Wenn es nicht vorhanden ist, senden Sie eine SQL -Abfrage an die Datenbank und speichern Sie die abgefragten Daten in den Cache und geben Sie sie an das Programm zurück.
Dies wird ein Problem haben:
Wenn ein Programm die Daten der Datenbank ändert, die während der ersten und zweiten Abfrage überprüft werden sollen, werden die Lesedaten falsch sein, dh, so,
Dirty Reading ist tatsächlich, dass MyBatis den Cache löscht, nachdem die motage () in SQLSession ausgeführt wurde. Beim zweiten Mal, wenn ich zur Abfrage gehe, werde ich immer noch aus der Datenbank abfragen.
Sie können auch die Methode clearCache () von SQLSession manuell aufrufen, um den Cache zu löschen
Kleine Beispiele:
@Test public void testCachelever1 () löst Ausnahme aus {SQLSession Session = factory.openSession (); UsMapper mapper = session.getMapper (userMapper.class); // Die erste Anfrage besteht darin, den Benutzer mit id 1 user = mapper.finduserById (1) abzufragen. System.out.println (Benutzer); // Daten ändern, der Cache wird gelöscht. Mapper.Updateuser (Benutzer); Session.Commit (); // Die zweite Abfrage sucht nach user2 = mapper.finduserbyId (1); System.out.println (user2); Sitzung.CLOSE (); }Frage:
Wenn SQLSession geschlossen ist, wird der Cache gelöscht. Wie verwenden Sie Cache, um die Effizienz zu verbessern?
Okay, der nächste Artikel bringt Ihnen MyBatis Level 2 -Cache vor.
Das obige ist der vom Herausgeber eingeführte Cache MyBatis erster Stufe. Ich hoffe, es wird für alle hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird allen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!