使用MyBatis Generator逆向工程报错:元素类型为 "context" 的内容必须匹配

利用mybatis generator反向生成数据库对应model和mapper时,配置文件出现以下错误

[ERROR] Failed to execute goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.5:generate (default-cli) on project SSM-CRUD: XML Parser Error on line 57: 元素类型为 “context” 的内容必须匹配 “(property*,plugin*,commentGenerator?,(connectionFactory|jdbcConnection),javaTypeResolver?,javaModelGenerator,sqlMapGenerator?,javaClientGenerator?,table+)”。 -> [Help 1]

  • 原因
    配置文件 generatorConfig.xml 里面的context的子元素必须按照它给出的顺序,如错误提示的match“……”部分。 当然也可能是你xml文件有错(这个容易检查出来)
  • 解决方案
    • property 标签放在 context 内的首位,将 commentGenerator 放在property后边
  • 标准顺序
    (property*,plugin*,commentGenerator?,(connectionFactory|jdbcConnection),javaTypeResolver?,javaModelGenerator,sqlMapGenerator?,javaClientGenerator?,table+)

以下是正确的 myBatisGeneratorConfig.xml 文件



<generatorConfiguration>
    
    <classPathEntry location="D:/software/Mavenrepo/mysql/mysql-connector-java/5.1.44/mysql-connector-java-5.1.44.jar"/>
    <context id="context" targetRuntime="MyBatis3">
		
        <property name="javaFileEncoding" value="UTF-8"/>
        
        
        <commentGenerator>
            <property name="suppressAllComments" value="true" />
        commentGenerator>

        
        <jdbcConnection
                driverClass="com.mysql.jdbc.Driver"
                connectionURL="jdbc:mysql://localhost:3306/ssm_crud"
                userId="root"
                password="123"/>

        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        javaTypeResolver>

        
        <javaModelGenerator targetPackage="com.ltq.model" targetProject="src/main/java">
            <property name="trimStrings" value="true"/>
        javaModelGenerator>

        
        <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
        sqlMapGenerator>

        
        <javaClientGenerator targetPackage="com.ltq.mapper" targetProject="src/main/java" type="XMLMAPPER">
        javaClientGenerator>

        
        <table tableName="tbl_emp" domainObjectName="Employee" enableSelectByExample="true"
               enableDeleteByExample="true" enableCountByExample="true"
               enableUpdateByExample="true" selectByExampleQueryId="true">
            <property name="ignoreQualifiersAtRuntime" value="false"/>
            <property name="useActualColumnNames" value="false"/>
        table>
        <table tableName="tbl_dept" domainObjectName="Department" enableSelectByExample="true"
               enableDeleteByExample="true" enableCountByExample="true"
               enableUpdateByExample="true" selectByExampleQueryId="true">
            <property name="ignoreQualifiersAtRuntime" value="false"/>
            <property name="useActualColumnNames" value="false"/>
        table>
    context>
generatorConfiguration>
  • 若想要生成全部表 使用 tableName="%" 即可

若数据库表为:
使用MyBatis Generator逆向工程报错:元素类型为
想要生成的实体类没有sys_
< domainObjectRenamingRule searchString="^Sys" replaceString="" />

<table tableName="sys%" enableSelectByExample="true"
               enableDeleteByExample="true" enableCountByExample="true"
               enableUpdateByExample="true" selectByExampleQueryId="true">
            <property name="ignoreQualifiersAtRuntime" value="false" />
            <property name="useActualColumnNames" value="false" />
            <domainObjectRenamingRule searchString="^Sys" replaceString="" />
        table>
 table>

最终生成:
在这里插入图片描述

你可能感兴趣的:(Java)