2016-05-04 3 views
0

Wenn ich put "<commentGenerator>" nach "<JdbcConnection>", schlug MBG einen Fehler, der Kontext Inhalt entsprechen sollte: blablabla ... Aber wenn ich put "<commentGenerator>" vor "<JdbcConnection>", ist alles OK. Hier habe ich etwas auf der offiziellen Website zu beschweren, dass, wenn die Bestellung dieser Artikel erforderlich ist, warum Sie uns nicht sagen! Was für eine wichtige Sache! Sie verarschen die Erstsemester. Vielleicht ist es etwas, wo ich nicht weiß, aber das ist ein wichtiger Punkt, um die MBG-Konfigurationsdatei erfolgreich zu erstellen, warum nicht diese Notiz auf den Anfang des Tutorials oder irgendwo auffälligen setzen ??????? Entschuldigung für meine Unhöflichkeit. Es hat mich wirklich hart gefickt! HEHE.Mybatis Generator's Bug: Konfigurationselemente sollten bestellt werden?

<generatorConfiguration > 
    <classPathEntry location="D:\mariadb-java-client-1.1.7.jar" /> 
    <context id="db" > 
    <commentGenerator> 
     <property name="suppressAllComments" value="true" /> 
     <property name="suppressDate" value="true" /> 
    </commentGenerator> 
    <jdbcConnection driverClass="org.mariadb.jdbc.Driver" 
        connectionURL="jdbc:mariadb://localhost:3306/dbname" 
        userId="root" 
        password="password" 
    /> 
    <javaTypeResolver > 
     <property name="forceBigDecimals" value="false" /> 
    </javaTypeResolver> 
    <!-- Model Class --> 
    <javaModelGenerator targetPackage="org.infrastructure.model" targetProject="infrastructure\src\main\java"> 
     <property name="enableSubPackages" value="false" /> 
     <property name="trimStrings" value="true" /> 
    </javaModelGenerator> 

    <!-- XML Files --> 
    <sqlMapGenerator targetPackage="sqlMap" targetProject="infrastructure\src\main\config"> 
     <property name="enableSubPackages" value="false" /> 
    </sqlMapGenerator> 

    <!-- DAO --> 
    <javaClientGenerator type="XMLMAPPER" targetPackage="org.infrastructure.dao" targetProject="infrastructure\src\main\java"> 
     <property name="enableSubPackages" value="false" /> 
    </javaClientGenerator> 

    <!-- Tables --> 
    <table tableName="user" domainObjectName="User" ></table> 
    </context> 
</generatorConfiguration> 
+0

Entschuldigung, ich fange dich nicht.Könnten Sie mir bitte sagen, wo ich das Generatorbeispiel bekommen kann? Oder zeigen Sie bitte einfach mehr von Ihrer Konfiguration an? –

+0

Danke für Ihre Antwort. –

+0

Bereits aktualisiert. –

Antwort

1

Zunächst einmal in Ihrer xml Konfigurationsdatei enthält kein gültiges Wurzelelement, das immer wie <!DOCTYPE .../> sein sollte. Informationen zum Hinzufügen eines korrekten Stammelements der Generatorkonfigurationsdatei mybatis finden Sie im Beispiel von MyBatis GeneratorXML Configuration File Reference.

Wenn Sie richtig Wurzelelement angegeben wie folgt:

<!DOCTYPE generatorConfiguration PUBLIC 
    "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" 
    "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" 
> 

Dieses Wurzelelement enthält eine typische DTD Erklärung bei http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd entfernt. Dies ist die Definition von die Reihenfolge dieser Artikel ist erforderlich. Und wir werden sehen, wie es aussieht.

Ab Zeile 47 dieser Dokumenttypdefinition definiert es das Element context. Der Inhalt ist wie folgt:

<!-- 
    The context element is used to describe a context for generating files, and the source tables. 
--> 
<!ELEMENT context (property*, plugin*, commentGenerator?, jdbcConnection, javaTypeResolver?,javaModelGenerator, sqlMapGenerator?, javaClientGenerator?, table+)> 

die offensichtlich die Reihenfolge des Elements definiert in context, das heißt:

property*, plugin*, commentGenerator?, jdbcConnection, 
javaTypeResolver?,javaModelGenerator, sqlMapGenerator?, 
javaClientGenerator?, table+ 

In diesem Element sind alle Kinder muss tritt als following rules:

  1. + für die Angabe, dass es ein oder mehrere Vorkommen des Elements geben muss - der effektive Inhalt jedes Vorfalls kann unterschiedlich sein;
  2. * für die Angabe, dass eine beliebige Anzahl (null oder mehr) von Vorkommen erlaubt ist - das Element ist optional und der effektive Inhalt jedes Auftretens kann unterschiedlich sein;
  3. ? für die Angabe, dass es nicht mehr als ein Vorkommen geben darf - das Element ist optional;
  4. Wenn kein Quantifizierer vorhanden ist, muss das angegebene Element genau einmal an der angegebenen Position im Inhalt des Elements vorkommen.

Nachdem wir seine wahre Bedeutung zu verstehen, warum Sie nicht die Reihenfolge der commentGenerator ändern könnte und jdbcConnection sollte klar sein.

Vielleicht möchten Sie wissen, wie man das Element außer Betrieb setzt, könnte die Frage How to define DTD without strict element order nützlich sein.

Ich wünsche es hilfreich.

+0

Ja, anscheinend. Schätze deine Antwort trotzdem. Meine Beschwerde ist, dass MGB dieses wichtige Ding in seinem Tutorial in eine bestimmte Position bringen sollte. –