如果我放"< commentGenerator>"在"< jdbcConnection>"之后,MBG提出了一个错误,即上下文内容应该匹配:blablabla ... 但是当我把"< commentGenerator>"在"< jdbcConnection>"之前,一切正常。在这里,我有话要向官方网站投诉,如果需要这些物品的订单,为什么你不告诉我们!真是太重要了!你开玩笑吧。也许这是我不知道的地方,但这是成功构建MBG配置文件的关键点,为什么不把这个NOTE放在教程的顶部或引人注目?
<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 :(得分: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"
>
此根元素包含位于http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd
的典型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:
的形式出现+
用于指定项目必须出现一次或多次 - 每次出现的有效内容可能不同; *
用于指定允许任何数量(零个或多个)出现 - 该项目是可选的,每个事件的有效内容可能不同; ?
用于指定一定不能出现多次 - 该项是可选的; 在我们理解其真实含义后,为什么您无法更改commentGenerator
和jdbcConnection
的顺序应该是明确的。
也许您想知道如何使元素无序,问题How to define DTD without strict element order可能会有用。
希望它有所帮助。