Schaffen Sie weiter, beschleunigen Sie das Wachstum! Dies ist der 12. Tag meiner Teilnahme an der „Nuggets Daily New Plan · June Update Challenge“, klicken Sie hier, um die Details der Veranstaltung anzuzeigen
Hintergrund
- Zeichnen Sie die Funktionsmodule von mybatis3 auf, um zu verstehen, wie mybatis funktioniert.
Prozess
- Anzeige des Quellmoduls
- Anmerkungen
Anmerkungen, wie die häufig verwendeten @Select, @Insert, @Update, @Delete und viele andere. Die Verwendung besteht darin, das Wissen der Reflexion zu nutzen, um die Metainformationen der Klasse zu erhalten und sie dann Schritt für Schritt gemäß den definierten Regeln zu analysieren. 2. Binding (ein sehr wichtiges Modul) generiert eine entsprechende Mapper-Proxy-Klasse für die Mapper-Schnittstelle und kann über statementId abgerufen werden.Jede Mapper-Datei hat eine entsprechende Mapper-Proxy-Klasse. MapperProxyFactory erzeugt den MapperProxy, der der Mapper-Schnittstellendatei entspricht, und fügt ihn als Teil der Konfigurationsinformationen in die MapperRegistry ein, sodass er über die statementId aus dem Container abgerufen werden kann. Die statementId ist hier eigentlich der Namespace + die ID (Methodenname) der mapper.xml-Datei dar. Darunter in MapperMethod Die execute-Methode ist der Kern, alle Einträge der oberen Ebene zum Ausführen von SQL. 3. Der Builder
erstellt den Inhalt der XML-Datei. Lesen Sie die Knoten in der XML-Datei nacheinander und bauen Sie sie in Java-Beans ein, die bequem direkt über die get-Methode abgerufen werden können. 4. Cache-Cache, mybatis-Cache wird im Map-Container gespeichert, dieses Modul liefert den Berechnungsprozess des Cache-Schlüssels. 5. Cursor-Cursor, Zeiger. Eine Möglichkeit, eine relationale Datenbank abzufragen. 6. Datenquelle, Datenbankquelle, gepoolte Datenquelle und nicht gepoolte Datenquelle. Es enthält nur einige grundlegende Informationen wie Benutzername, Passwort, URL, Treiber usw. 7. Exception, die Ausnahmebehandlungsklasse von mybatis. 8. Executor, sehr Kernfunktion
SQL Executor. Die Anweisung, die mit der Datenbank interagiert, führt vorher die Parametervorbereitung und danach die Verarbeitung der Ergebnismenge aus. 9. io, Ressourcenfunktionsmodul, Dateien lesen 10. jdbc, grundlegende Betriebsdatenbank, wird zum Testen verwendet, tatsächlich verwendet anderer Kernquellcode die Klassen unter diesem Paket nicht.
11. Logging, Protokollmodul 12. Mapping , Kernmodul
MappedStatement ist eine sehr wichtige Klasse. Enthält viele Metadateninformationen. Die Mapper-Schnittstelle und die Datei mapper.xml generieren eine Instanz MappedStatement 13. parsing, XPathParser, XNode, die die grundlegende Klasse zum Analysieren von XML-Konfigurationsdateien bereitstellt. 14. Plugin, erweitert die Funktion von mybatis. Beispielsweise soll die Paging-Abfrage das Arbeitsprinzip des mybatis-Plugins verwenden. 15. reflexion, bereichert die reflexionsfunktion auf basis von jdk 16. scripting, verarbeitet tags in xml-dateien und sql
17. session, kernfunktionspaket.
SqlSessionFactoryBuilder erstellt eine SqlSessionFactory und dann eine SqlSession-Instanz aus der SqlSessionFactory-Instanz. Schließlich interagiert die sqlSession-Instanz mit der relationalen Datenbank. 18. Transaktion , Transaktionsverwaltung für relationale Datenbanken. Der allgemeine Nutzungsprozess wird für das Transaktionsmanagement an spring übergeben.
Transaktionsvorgang. einreichen. Zurückrollen. 19. Wie konvertiert die Parametereinstellung den Java-Typ in den JDBC-Typ, wenn der Typ mit der relationalen Datenbank interagiert?
Zusammenfassung
-
Nachdem Sie den Quellcode von mybatis gelesen und sein Arbeitsprojekt verstanden haben, vertiefen Sie Ihre Vertrautheit und Ihr Verständnis von mybaits durch Aufnahmen.
-
Durch die oben aufgeführten Funktionsbausteine kann der Arbeitsprozess von mybatis in Reihe geschaltet werden.
-
In der Lage sein, den Arbeitsprozess zu verstehen, wenn es ein Problem gibt, in der Lage zu sein, zu verstehen, in welcher spezifischen Verbindung das Problem auftritt, und bei der schnellen Lösung des Problems behilflich zu sein.