Ich habe in letzter Zeit kein Projekt durchgeführt, daher habe ich die vollständigste Konfigurationsdatei für den vollständigsten MyBatis -Generator (kurz MBG) mit detaillierten Erklärungen neu organisiert, und ich muss mich nicht mehr an die Benutzerhandbuch von EN ansehen.
<? Generator-> <generatorConfiguration> <!-Es kann zum Laden von Konfigurationselementen oder Konfigurationsdateien verwendet werden. In der gesamten Konfigurationsdatei können Sie $ {PropertyKey} verwenden, um die Konfigurationselementressource zu verweisen: Konfigurieren Sie die Ressourcenladeadresse, verwenden Sie Ressourcen und MBG startet von ClassPH, z. Beachten Sie, dass nur eines der beiden Eigenschaften ausgewählt werden kann. Wenn MyBatis-Generator-Maven-Plugin verwendet wird, können die in pom.xml definierten Eigenschaften in Generatorconfig.xml <Properties Resource = "url ="/>-> <! Dateien/ibm/sqllib/java/db2java.zip "/>-> <!-Kontext: Die Umgebungs-ID zum Generieren einer Gruppe von Objekten: Erforderlich, Kontext-ID, verwendet, um beim Generieren eines Fehlers defaultModelType den Stil des generierten Objekts zu erstellen 1, bedingt: Ähnlich wie mit hierarchisch; 2, flach: Alle Inhalte (Primärschlüssel, Blob) usw. werden in einem Objekt erzeugt; 3, hierarchisch: Der Primärschlüssel generiert ein XXKEY -Objekt (Schlüsselklasse), Blob usw. Erzeugt ein Objekt separat, und andere einfache Attribute befinden sich in einem Objekt (Datensatzklasse) TargetRuntime: 1, myBatis3: Der Standardwert generiert Inhalte basierend auf mybatis3.x und überversionen, einschließlich xxxbysample; 2, mybatis3Simple: Ähnlich wie MyBatis3, erzeugt aber nicht xxxbysample; eingeführtColumnImpl: Der voll qualifizierte Name der Klasse, mit der MBG-> <context id = "mySQL" DefaultModeltype = "Hierarchical" targetRuntime = "mybatis3Simple"> <!-automatisch identifizieren, identifizieren die in SQLResidiert festgelegten Default-Datenwörter automatisch in SQLREVAUTSWORTS. Bleiben Sie im Allgemeinen den Standardwert bei, begegnen Datenbankschlüsselwörter (Java-Schlüsselwörter) und verwenden Sie die spalteOverride, um-> <Eigenschaftsname = "autodelimitKeywords" value = "False"/> <!-Codierung generierter Java-Dateien-> <Property Name = "JavafileCoding" Value = "utf-8"/<! value = "org.mybatis.generator.api.dom.DefaultJavaFormatter"/> <!-Format XML-Code-> <Eigenschaft name = "xmlformatter" value = "org.mybatis.Anerator Zum Beispiel ist Oracle doppelte Zitate, und MySQL stellt sich standardmäßig auf "Backticks" aus; -> <Eigenschaft name = "startDelimiter" value = "` "/> <Eigenschaft name =" enddelimiter "value =" `"/> <! ConnectionUrl = "JDBC: MySQL: /// PSS" userId = "root" password = "admin"> <! Beachten Sie, dass Sie standardmäßig versuchen, Integer, Long, Short usw. zu verwenden, um Dezimal- und numerische Datentypen zu entsprechen. -> <Javatyperesolver type = "org.mybatis.generator.internal.types.javatyperesolverdefaultImpl"> <!-true: Verwenden Sie BigDecimal für Dezimal- und numerische Datentypen Falsch: Default, Skala> 0; Länge> 18: Verwenden Sie BigDecimal; scale = 0; Skala = 0; Länge [5,9]: Verwenden Sie Integer; Skala = 0; Länge <5: Kurzwende; -> <Eigenschaft name = "ForceBigDecimals" value = "false"/> </javatyperesolver> <! 2. Java -Klasse; 3.. Abfrageklasse TargetPackage: Das Paket, das in der generierten Klasse platziert werden soll, wird das reale Paket vom Attribut "EncessUbPackages" gesteuert. TargetProject: Das Zielprojekt, geben Sie ein vorhandenes Verzeichnis an, und der generierte Inhalt wird im angegebenen Verzeichnis platziert. Wenn das Verzeichnis nicht vorhanden ist, erstellt MBG nicht automatisch ein Verzeichnis-> <JavamodelGenerator targetPackage = "com._520it.mybatis.domain" targetProject = "src/main/java"> <! anstatt Setter zu verwenden; -> <Eigenschaft name = "konstruktorbasierte" value = "false"/> <!-Basierend auf dem TargetPackage wird eine Paketschicht gemäß dem Datenbankschema generiert. Die endgültige generierte Klasse wird unter diesem Paket platziert, und die Standardeinstellung ist falsch-> <Eigenschaft name = "enableSubpackages" value = "true"/> <! Wenn TRUE der Fall ist, erstellt MBG eine Klasse ohne Setter-Methode und ersetzt sie durch eine Klasse, die der konstruktorbasierten-> <Eigenschaft name = "unveränderlich" value = "false"/> <!-ein Stammobjekt festlegen. Wenn dieses Root -Objekt festgelegt ist, erbt die generierte Schlüsselklasse oder Datensatzklasse diese Klasse. Diese Option kann in der RootClass -Eigenschaft der Tabelle überschrieben werden. Hinweis: Wenn es in der Schlüsselklasse oder Datensatzklasse dieselben Attribute wie die Stammklasse gibt, regeneriert MBG diese Attribute nicht, einschließlich: 1. Der Attributname ist der gleiche, der gleiche Typ und dieselbe Getter/Setzer -Methode; -> <Eigenschaft name = "rootClass" value = "com._520it.mybatis.domain.basedomain"/> <!-Setzen Sie, ob die TRIM () -Methode auf dem Feld des String-Typs in der Getter-Methode von Getter-> <Eigenschaft name = "trimstrings" value = "true"/> </> </> </javamodelGenator> <!-xml-Dateigenerator für Generating SQL Maps. Beachten Sie, dass wir nach MyBatis3 Mapper.xml -Datei + Mapper -Schnittstelle (oder keine Mapper -Schnittstelle verwenden können) oder nur die Mapper -Schnittstelle + Annotation verwenden können. Wenn die JavaClientGenerator-Konfiguration XML generieren muss, muss dieses Element mit TargetPackage/targetProject konfiguriert werden: Wie JavamodelGenerator-> <SQLMapGenerator TargetPackage = "com._520it.mybatis.Mapper" TargetProject = "Src/Mains" -Ressourcen "-Ressourcen" -Ressourcen-/Hauptressourcen "-Ressourcen", basiert auf dem Targing-Targing-Src/-Ressourcen-/Haupt-/Haupt-/Haupt-/Haupt-/Haupt-Ressourcen- "-Ressourcen" -Ressourcen ", basiert auf der Targing-Layer-Src/Mains-Ressourcen." Das Datenbankschema. Die endgültige generierte Klasse wird unter diesem Paket platziert, und die Standardeinstellung ist falsch-> <Eigenschaft name = "enableBpackages" value = "true"/> </sqlmapgenerator> <!-Für myBatis soll ein Mapper-Schnittstellen generiert werden. Beachten Sie, dass die Mapper -Schnittstelle, wenn das Element nicht konfiguriert ist, nicht standardmäßig targetPackage/targetProject generiert wird: Gleich wie JavamodelGeneratortyp: Wählen Sie, wie Sie eine Mapper -Schnittstelle generieren (unter mybatis3/mybatis3Simple): AnnotatedMapper: Es erzeugt ein Mapper -Interface. entsprechender XML wird nicht erzeugt; 2. MixedMapper: Mit einer Hybridkonfiguration wird die Mapper -Schnittstelle generiert und die entsprechende Annotation entsprechend hinzugefügt, die XML wird jedoch in XML generiert. 3. XMLMapper: Die Mapper -Schnittstelle wird generiert und die Schnittstelle hängt vollständig von XML ab. Beachten Sie, dass wenn der Kontext MyBatis3Simple ist: nur AnnotatedMapper und XMLMapper-> <JavaClientGenerator targetPackage = "com._520it Die endgültige generierte Klasse wird unter diesem Paket platziert, das standardmäßig zu False-> <Eigenschaft name = "aktiviert" value = "true"/> <! Es kann einen oder mehrere Tische geben. Es muss eine durch das Tabellenelement ausgewählte Tabelle geben. Die folgenden Dateien werden generiert: 1. 3. Klassen mit anderen Feldern außer Blob und Primärschlüssel; 4. Klassen mit Blob; 5. Eine bedingte Klasse für Benutzer, um dynamische Abfragen zu generieren (selectByExample, deleteByExample), optional; 6. Mapper -Schnittstelle (optional) TableName (notwendig): Der Tabellenname des zu generierten Objekts; Hinweis: Fall sensible Probleme. Unter normalen Umständen identifiziert MBG die Fallempfindlichkeit der Datenbankkennung automatisch. Im Allgemeinen wird MBG die Datentabelle basierend auf dem festgelegten Schema, Katalog oder Tablautentabelle abfragen und den folgenden Prozess befolgen: 1. Wenn es Leerzeichen im Schema, Katalog oder Tablauton gibt, wird der Formatsatz genau zur Abfrage verwendet. 2. Wenn die Datenbankkennung aktiviert ist, verwandelt MBG den Tabellennamen automatisch in Kapital und sucht dann. 3. Wenn die Datenbankkennung aktiviert ist, verwandelt MBG den Tabellennamen automatisch in Kapital und sucht dann. Suchen; 4. Verwenden Sie ansonsten das angegebene Fallformat zur Abfrage. Wenn das Datenbankobjekt beim Erstellen einer Tabelle verwendet wird, wird der Tabellenname auch dann mit dem angegebenen Fall erstellt, wenn die Datenbankkennung verwendet wird. In diesem Fall legen Sie bitte die Delimitidentifiers = "True" fest, um das Fallformat beizubehalten. Optional: 1. Schema: Das Schema der Datenbank; 2. Katalog: Der Datenbankkatalog; 3.. Alias: Der Alias für die Datentabelle. Wenn Alias festgelegt wird, wird alle aus SQL -Anweisungen generierten Auswahlmöglichkeiten: Der Spaltenname wird: alias_actualColumnname4, DomainObjectName: Der Name der generierten Domänenklasse. Wenn nicht festgelegt, verwenden Sie den Tabellennamen als Name der Domänenklasse. Es kann auf showpck.domainName eingestellt werden, und dann wird die Domainname -Klasse automatisch in das SONPCK -Paket platziert. 5, enableInsert (Standard true): Geben Sie an, ob eine Insert -Anweisung generiert werden soll. 6, enableSectByprimaryKey (Standard -True): Geben Sie an, ob die Anweisung zum Abfragen des Objekts nach dem Primärschlüssel generiert werden soll (d. H. GetbyId oder Get); 7. EnablySectByExample (Standard true): MyBatis3Simple ist falsch und gibt an, ob dynamische Abfrageanweisungen generiert werden sollen. 8. EnableUpdateByPrimaryKey (Standard -True): Geben Sie an, ob eine Anweisung generiert werden soll, die das Objekt gemäß dem Primärschlüssel ändert (d. H. Aktualisierung); 9. EnabledSeleteByprimaryKey (Standard -True): Geben Sie an, ob eine Anweisung generiert werden soll, die das Objekt gemäß dem Primärschlüssel löscht (d. H. Löschen); 10. Enabledel ETEBYEMAMPLE (Standard true): MyBatis3Simple ist falsch. Geben Sie an, ob dynamische Löschanweisungen generiert werden sollen. 11, EnableCountByExample (Standard true): MyBatis3Simple ist falsch. Geben Sie an, ob die Gesamtzahl der Wörter dynamische Abfragen generiert (verwendet für die Gesamtzahl der Wörter für die Paginierung). 12, enableUpdateByExample (Standard true): MyBatis3Simple ist falsch, geben Sie an, ob dynamische Änderungsanweisungen generiert werden sollen (nur die Attribute ändern, die im Objekt nicht leer sind). 13, ModelTyp E: Siehe DefaultModeltype des Kontextelements, das dem Überschreiben entspricht; 14, Delimitidentifiers: Beachten Sie auf die Erläuterung von TableName. Beachten Sie, dass die Standard -AblagerungsDidentifikatoren doppelte Zitate sind. Wenn eine Datenbank wie MySQL `` (Backquotes verwendet, müssen Sie auch die Eigenschaften des Kontext -Anfängers und Enddelimiter festlegen) 15, DelimitallColumns: Legen Sie fest, ob alle generierten Spaltennamen in SQL durch Kennungen verursacht werden. Abgrenzer beziehen sich auf die Eigenschaft des Kontextes. Beachten Sie, dass viele Parameter in der Tabelle ein Umschreiben der Standardeigenschaften von Javamodelgenerator, Kontext und anderen Elementen sind. -> <table tableName = "userInfo"> <!-Verweisen Sie auf die konstruktorbasierte Eigenschaft von JavamodelGenerator-> <Eigenschaft name = "konstruktorbasierte" value = "false"/> <!-Standard ist falsch. Wenn auf True festgelegt wird, wird der Tabellenname nicht mit Katalog oder Schema in der generierten SQL hinzugefügt. -> <Eigenschaft name = "Ignorequalifiersatruntime" value = "False"/> <!-Referenz JavamodelGenerator Die unveränderliche Eigenschaft der unveränderlichen Eigenschaft-> <Eigenschaft name = "unveränderlich" value = "false"/> <!-Gibt an, ob nur die Domänenklasse generiert werden soll. Wenn auf True gesetzt, wird nur die Domänenklasse erstellt. Wenn auch der SQLMAPGenerator konfiguriert ist, wird in der Mapper XML-Datei nur das Ergebnismap-Element generiert-> <Eigenschaft name = "modellonly" value = "false"/> <! value = ""/>-> <!-Siehe die Eigenschaft rootInterface des JavaClientGenerators <Eigenschaft name = "rootInterface" value = ""/>-> <!-Wenn RunTimecatalog eingestellt ist, wird im generierten SQL der angegebene Katalog anstelle des Katalogs auf dem Tabellenelement verwendet. <Eigenschaft name = "runTimecatalog" value = ""/>-> <!-Wenn RunTimeSchema eingestellt ist, wird das angegebene Schema in der generierten SQL anstelle des Schemas auf dem Tabellenelement verwendet. <Eigenschaft name = "RunTimeSchema" value = ""/>-> <!-Wenn RuntimetableName festgelegt ist, wird im generierten SQL der angegebene Tablenname anstelle des Tabellenelements verwendet. <Eigenschaft name = "runTimetableName" value = ""/>-> <!-Beachten Sie, dass diese Eigenschaft nur für MyBatis3Simple nützlich ist; Wenn die ausgewählte Laufzeit MyBatis3Simple ist, wird eine Selectall -Methode erzeugt. Wenn selectAllordebyclause angegeben ist, wird dem SQL die angegebene Bestellbedingung hinzugefügt. -> <Eigenschaft name = "selectAllordyclause" value = "Alter Desc, Benutzername ASC"/> <!-Wenn die generierte Modellklasse selbst festgelegt wird, verwendet die generierte Modellklasse den Namen der Spalte selbst und verwendet keine Kamelbenennungsmethoden mehr, wie z. B. Born_date und der generierte Eigenschaftsname Born_date, Not BornDate-> <useAnnamen "ugencolualColualcolualcolualcolualcolual". Eine Methode zur Generierung eines Primärschlüssels. Wenn dieses Element festgelegt ist, generiert das MBG im erzeugten <Seturn> -Element ein korrektes <SelectKey> -Element. Das Element kann Spalte ausgewählt werden: Der Spaltenname der Primärschlüssel; SQLStatement: Die zu generierende Auswahlverkäufe hat die folgenden Optionen: Cloudscape: Das SQL -Äquivalent zu SelectKey ist: Werte identity_val_local () () db2: Das SQL -Äquivalent für SelectKey ist: Werte Identity_val_Local () () db2_mf: Der SQL -äquivalent zu: Select -Identitäts -Identitäts -Identitäts -Identitäts -Identitäts -Identitäts -Identitäts -Identitäts -Identitäts -Identitäts -Identitäts -Identitäts -Identitäts -Identitäts -Identitäts. Sysibm.sysdummy1derby: Das SQL -Äquivalent zu SelectKey ist: Werte identity_val_local () hsqldb: Das SQL -Äquivalent zu SelectKey lautet: call identity () Informix: Das SQL -Äquivalent zum Auswählen ist: SELECT DBINFO ('SQLCA.SQLCA.SQLRECKE -SELTERS SECTION, WHERE TABID = 1MYSQLCA. IS: SELECT last_insert_id () SQLServer: Das SQL-Äquivalent zu SelectKey ist: select scope_identity () sybase: Das SQL-Äquivalent zu SelectKey ist: select @@ identityjdbc: Es ist äquivalent zum addierenden ugeneratedkeys = "true" und keyproperty-Attribute auf dem generierten Einfügungselement. In diesem Element wird der Spaltenname umbenannt, bevor der Objektattributname basierend auf dem Spaltennamen in der Tabelle berechnet wird. Es ist sehr geeignet, wenn die Spalten in der Tabelle gemeinsame Präfix -Zeichenfolgen haben, z. B. den Spaltennamen: Cust_id, Cust_Name, Cust_Email, Cust_address usw.; Dann können Sie die Suche auf "^cust_" einstellen und sie durch leerer Speicherplatz ersetzen. Dann ist der Attributname im generierten Kundenobjekt nicht CustID, Cu stname usw., sondern wird durch ID, Name, E -Mail und dann zu Attributen ersetzt: ID, Name, E -Mail; Beachten Sie, dass MBG java.util.regex.matcher.replaceall verwendet, um Suchstring und Austausch zu ersetzen. Wenn das SpaltenOverride -Element verwendet wird, ist dieses Attribut ungültig; <ColumnRenAmingRule SearchString = "" ersetzen SieString = ""/>-> <!-verwendet, um die Eigenschaften einer Spalte in der Tabelle zu ändern. MBG verwendet die modifizierte Spalte, um die Eigenschaften der Domäne zu generieren. Spalte: Der Spaltenname, der zurückgesetzt wird; Beachten Sie, dass es in einem Tabellenelement mehrere spalteOverRide-Elemente geben kann. <Eigenschaft name = "javatype" value = ""/>-> <!-JdbcType wird verwendet, um den JDBC-Typ der Spalte zu geben. Wenn Sie angeben möchten, beachten Sie bitte, dass in MyBatis der Typhandler in mybatis-config.xml nicht in mybatis-config.xml generiert wird, nur die Parameterbeschreibung von Folgendes: WHERE ID = # #{ID, JDBCTYPE = BIGINT, Typhandler = com._520it.mybatis.mybatis.mybatis.mytis.mybatis.mytis.mytis.mytis.mybatis.mytis.mytis.mybatis.Mytis.Mybatis.Mytis.Mytis.Mytis.Mytis.Mytype-adocialler name = "jdbctype" value = ""/>-> <!-Siehe die Konfiguration von DelimitAllColumns des Tabellenelements, Standard ist falsch <Eigenschaft name = "delimitedColumnname" value = "/>-> </columnoverride> <!-ignorEcolumn setzt eine Spalte, die mgb ignoriert. Wenn ein Neupalum festgelegt ist, dann in der erzeugten und generierten SQL-Spalte: Gibt den Namen der zu ignorierten Spalte an. delimitedColumnName: Siehe die Konfiguration von DelimitallColumns des Tabellenelements, Standard ist falsch. Beachten Sie, dass es in einem Tabellenelement <ignorEcolumn column = "Deptid" delimitedColumnname = "/>-> </table> </context> </generatorConfiguration> mehrere ignoreColumn-Elemente geben kann.Das obige ist die detaillierte Erklärung der perfektesten Konfigurationsdatei von MyBatis Generator, die Ihnen vom Editor (Vollversion) vorgestellt wurde. Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird Ihnen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!