2016-05-04 1 views
0

Если я ставлю «<commentGenerator>» после «<jdbcConnection>», MBG предложил ошибку, содержание контекста должно соответствовать: блаблабла ... Но когда я ставлю «<commentGenerator>» перед «<jdbcConnection>», все ОК. Здесь у меня есть что-то, чтобы жаловаться на официальный сайт, что, если порядок этих предметов необходим, почему вы не говорите нам! Какая важная вещь! Вы ругаете первокурсников. Может быть, это некоторые, где я не знаю, но это ключевой момент для успешного создания файла конфигурации MBG, почему бы не поставить это ПРИМЕЧАНИЕ в верхней части учебника или где-то привлекательный ??????? Извините за мою грубость. Это действительно трахнуло меня! HEHE.Ошибка генератора Mybatis: элементы конфигурации должны быть заказаны?

<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

Извините, я вас не поймаю.Не могли бы вы рассказать мне, где я могу получить пример генератора? Или просто показать больше своей конфигурации, пожалуйста? –

+0

Спасибо за ваш ответ. –

+0

Уже обновлено. –

ответ

1

Прежде всего, в файле конфигурации xml, он не содержит действительный корневой элемент, который всегда должен быть как <!DOCTYPE .../>. О том, как добавить правильный корневой элемент файла конфигурации генератора mybatis, см. Пример с MyBatis GeneratorXML Configuration File Reference.

Если правильно указан корневой элемент, например, следующее:

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

Этот корневой элемент содержит типичный DTD декларацию, расположенную на http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd. Это определение необходимо выполнить следующие изделия.. И мы посмотрим, как это выглядит.

Из строки 47 данного определения типа документа он определяет элемент с именем context. Содержание следующим образом:

<!-- 
    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+)> 

Который явно определил порядок элемента в context, то есть:

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

В этом элементе, все дети должны происходит following rules:

  1. + для указания того, что должно быть одно или несколько вхождений элемента - эффективное содержание каждого события может быть иным;
  2. * для указания того, что допускается любое число (ноль или более) вхождений - элемент является необязательным, и эффективное содержание каждого события может быть иным;
  3. ? для указания того, что не должно быть более одного случая - элемент является необязательным;
  4. Если квантификатор отсутствует, указанный элемент должен происходить ровно один раз в указанной позиции в содержимом элемента.

После того как мы понять его истинный смысл, почему вы не смогли изменить порядок commentGenerator и jdbcConnection должно быть ясно.

Возможно, вы хотите знать, как сделать элемент неработоспособным, вопрос How to define DTD without strict element order может пригодиться.

Хотелось бы помочь.

+0

Да, видимо. Цените свой ответ в любом случае. Моя жалоба заключается в том, что MGB должен помещать эту важную вещь в какую-то точку зрения в своем учебнике. –

Смежные вопросы