Eigenschaften
Dies sind externalisierte alternative Eigenschaften, die auch in einer typischen Java -Eigenschaftskonfigurationsdatei konfiguriert oder untergeordnete Elemente von Eigenschaftenelementen durchlaufen werden können. Zum Beispiel:
<Properties Resource = "org/mybatis/example/config.Properties"> <Eigenschaft name = "userername" value = "dev_user"/> <Eigenschaft name = "password" value = "f2fa3! 33tyyg"/> </properties>
Die darin enthaltenen Eigenschaften können in der gesamten Konfigurationsdatei verwendet werden, und austauschbare Eigenschaften werden verwendet, um die dynamische Konfiguration zu implementieren. Zum Beispiel:
<dataSource type="POOLED"> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource>
In diesem Beispiel werden Benutzername und Passwort durch die im Eigenschaftenelement festgelegten Werte ersetzt. Treiber- und URL -Eigenschaften werden durch die in der Datei config.Properties enthaltenen Werte ersetzt.
Einstellungen
1.CACHEENEENABED
Diese Konfiguration ermöglicht es dem Global Mapper, Cache zu aktivieren oder zu deaktivieren.
Gültige Werte: Richtig, falsch
Standardwert: True
2.LaBoLoadingNabled
Aktivieren oder deaktivieren Sie das faule Laden weltweit. Bei deaktivierter Deaktivierung werden alle zugeordneten Objekte sofort geladen.
Gültige Werte: Richtig, falsch
Standardwert: True
3.ArgreselivAzyloading
Wenn ein Objekt mit einer verzögerten Ladeeigenschaft in der Lage ist, lädt ein Objekt bei Aufrufen vollständig eine Eigenschaft. ansonsten,
Jedes Attribut wird nach Bedarf geladen.
Gültige Werte: Richtig, falsch
Standardwert: True
4.Mult IPleResultsetSenabled
Zulassen oder nicht zulassen, dass mehrere Ergebnissätze von einer separaten Anweisung zurückgegeben werden (erfordert geeignete Treiber).
Gültige Werte: Richtig, falsch
Standardwert: True
5.UssecolumnLabel
Verwenden Sie Spaltenbezeichnungen anstelle von Spaltennamen. Verschiedene Treiber sind für unterschiedliche Leistungen bequem. Siehe Treiberdokumentation oder testen Sie die vollständige Methode, um den verwendeten Treiber zu bestimmen.
Gültige Werte: Richtig, falsch
Standardwert: True
6. UseGeneratedkeys
Ermöglicht JDBC, generierte Schlüssel zu unterstützen. Benötigen Sie eine geeignete Fahrt. Wenn diese Einstellung auf True gesetzt ist, zwingt diese Einstellung die generierten Schlüssel, die verwendet werden sollen, und obwohl einige Fahrer sich weigern, kompatibel zu sein, sind sie immer noch gültig (wie Derby).
Gültige Werte: Richtig, falsch
Standardwert: Falsch
7.AutomappingBehavior
Gibt an, wie MyBatis Spalten automatisch auf Felder/Attribute abbildert. Teilweise wird nur automatisch einfach zugeordnet und haben keine verschachtelten Ergebnisse.
Vollständig werden komplexe Ergebnisse automatisch zugeordnet (Nacken oder auf andere Weise)
Gültige Werte: Keine, teilweise, voll
Standardwert: teilweise
8.DefaultExecutortype
Konfigurieren Sie den Standard -Ausführern. Der einfache Aktuator hat nichts Besonderes. Der Wiederverwendungsprüfter wiederverwendet die Vorverarbeitungsanweisungen.
Batch Executor Wiederverwendung Anweisungen und Batch -Update Gültige Werte: Einfach, Wiederverwendung, Batch
Standardwert: Einfach
9.DefaultStatementTimeout
Legen Sie die Zeitüberschreitungszeit fest, die bestimmt, wie der Treiber auf eine Datenbankantwort wartet.
Gültige Werte: Any, positiv, ganzzahlig
Standardwert: Nicht gesetzt (null)
Die vollständige Konfiguration ist ein Beispiel für die Einstellung von Informationselementen lautet wie folgt:
<einstellungen> <Einstellung name = "cacheeNabled" value = "true"/> <Einstellung name = "LazyLoadingInabled" value = "true"/> <Einstellungsname = "MultipleresulltsetSenable" value = "true"/> <Einstellungsname = "usecolumnLabel" value ". value = "false"/> <Einstellung name = "DefaultExecUTortype" value = "Simple"/> <Einstellungsname = "DefaultStatementTimeout" value = "25000"/> </Einstellungen>
Typen
Ein Alias vom Typ besteht darin, einen kurzen Namen für Java -Typen zu benennen. Es hängt nur mit der XML -Konfiguration zusammen und wird nur verwendet, um die redundanten Teile des voll qualifizierten Namens der Klasse zu reduzieren. Zum Beispiel:
<typealias alias = "Autor" type = "domain.blog.author"/> <typealias alias = "blog" type = "domain.blog.blog"/> <typealias alias = "comment" type = "domain.blog.comment"/> <typias alias = "post" type "type" domain.blog.blog.post "/> <typealias Alias" Abschnitt "Abschnitt". type = "domain.blog.section"/> <typealias alias = "tag" type = "domain.blog.tag"/> </typealias>
Mit dieser Konfiguration kann "Blog" als willkürlich anstelle von "domain.blog.blog" verwendet werden. Für normale Java-Typen gibt es viele eingebaute Alias. Sie sind beide unempfindliche Fall, und aufgrund überlasteter Namen sollten Sie auf die besondere Behandlung der einheimischen Typen achten.
Typhandler
Unabhängig davon, ob MyBatis einen Parameter in einer Vorverarbeitungsanweisung festlegt oder einen Wert aus dem Ergebnissatz entnimmt, wird der Typprozessor verwendet, um den erhaltenen Wert in die entsprechende Weise in den Java -Typ umzuwandeln. Die folgende Tabelle beschreibt den Standardtypprozessor.
Sie können den Typprozessor umschreiben oder Ihren eigenen Typ-Prozessor erstellen, um nicht unterstützte oder nicht standardmäßige Typen zu verarbeiten. Aber diese Situation ist ziemlich selten! !
ObjectFactory
MyBatis erfolgt jedes Mal, wenn eine neue Instanz des Ergebnisobjekts erstellt wird. Wenn die Parameterkarte vorhanden ist, funktioniert das Standard -Objektfaktor nicht mehr als die Instanziierung der Zielklasse mit dem Standardkonstruktor oder Konstruktor mit Parametern. Wenn Sie das Standard -Objektfaktor umschreiben möchten, können Sie Ihre eigenen erstellen. Beispiel weggelassen.
Plugins
Mit MyBatis können Sie Anrufe abfangen, die von zugeordneten Aussagen an einem bestimmten Punkt ausgeführt werden. Standardmäßig ermöglicht MyBatis Plugins, Methodenaufrufe abzufangen:
1.executor
(Update, Abfrage, Spuschstatements, Commit, Rollback, GetTransaction, Close, isclose)
2. ParameterHandler
(GetParameterObject, SetParameters)
3.ResultsaHandler
(Handleresultsets, HandleOutputParameter)
4. Stattungshandler
(Vorbereiten, Parametrize, Stapel, Update, Abfrage)
Umgebungen
MyBatis kann mit mehreren Umgebungen konfiguriert werden. Auf diese Weise können Sie SQL -Mappings auf mehrere Datenbanken anwenden.
Eine sehr wichtige Frage, die Sie beachten sollten: Sie können mehrere Umgebungen konfigurieren, können jedoch nur eine für jede SQLSessionFactory -Instanz auswählen. Wenn Sie also eine Verbindung zu zwei Datenbanken herstellen möchten, müssen Sie zwei SQLSessionFactory -Instanzen für jede Datenbank erstellen. Und wenn es drei Datenbanken sind, benötigen Sie drei Instanzen und so weiter.
Umgebungselemente definieren, wie die Umgebung konfiguriert wird, zum Beispiel:
<Environments default = "Development"> <Environment ID = "Entwicklung"> <transactionManager type = "jdbc"> <Eigenschaft name = "..." value = "..."/> </transactionManager> <dataSource type = "Pooled"> <Eigenschaft name = "treiber" value value = "$ {userername}"/> <Eigenschaft name = "password" value = "$ {password}"/> </dataSource> </umwelt> </Umgebungen> Beachten Sie hier:
1. Standardumgebungs -ID (z. B. default = "Entwicklung").
2. Die durch jedes Umgebungselement definierte Umgebungs -ID (zum Beispiel: ID = "Entwicklung").
3. Konfiguration der Transaktionsmanager (z. B. Typ = "JDBC").
4. Datenquellenkonfiguration (z. B. type = "Pooled").
Transaktionsmanager
In MyBatis gibt es zwei Arten von Transaktionsmanagern (d. H. Typ = "[JDBC | Managed]".
1.JDBC-Diese Konfiguration verwendet und verwendet einfach JDBCs Commit- und Rollback-Einstellungen. Es stützt sich auf Verbindungen, die von Datenquellen zur Verwaltung der Transaktionsumfang erhalten wurden.
2. Managed --- Diese Konfiguration macht fast nichts. Es verpflichtet sich nie oder rollt eine Verbindung zurück. Der Container kann den gesamten Lebenszyklus einer Transaktion (z. B. den Kontext des Spring- oder JEE -Anwendungsservers) verwalten. Standardmäßig schließt es die Verbindung. Einige Container wollen dies jedoch nicht. Wenn Sie sie also aus der Verbindung stoppen müssen, stellen Sie die Eigenschaft Closeconnection auf false ein. Zum Beispiel:
<transactionManager type = "Managed"> <Eigenschaft name = "Closeconnection" value = "false"/> </transactionManager>
Keiner der Transaktionsmanager benötigt Immobilien. Es handelt sich jedoch um alle Aliase, und um sie zu ersetzen, müssen Sie Ihren eigenen vollständig qualifizierten Namen oder Typ -Aliase Ihrer eigenen Klasse aufstellen, die auf Ihre Implementierungsklasse für die transacfactory -Schnittstelle verweisen.