Mybatis Generator 未将表名映射到驼峰式大小写

Posted

技术标签:

【中文标题】Mybatis Generator 未将表名映射到驼峰式大小写【英文标题】:Table name not mapped to camel case by Mybatis Generator 【发布时间】:2018-07-30 18:33:02 【问题描述】:

我试用了 Mybatis Generator,效果很好。但是,即使列名正确映射为驼峰式大小写,文件名(Mapper.xml、Client 和 Model)也不遵循驼峰式大小写。

因此,例如,表 TIPO_SERVICO 被映射到 Tiposervico/TipoServicoMapper 而不是 TipoServico/TipoServicoMapper。

我查看了 Mybatis Generator 文档,没有找到与表名大小写相关的属性。

附:我的数据库是 Oracle。

我的 generatorConfig.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE generatorConfiguration PUBLIC
        "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" >
<generatorConfiguration>
    <context id="context" targetRuntime="MyBatis3Simple">
        <commentGenerator>
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>

        <jdbcConnection userId="[USER]" password="[PASSWORD]" driverClass="oracle.jdbc.OracleDriver" connectionURL="jdbc:oracle:thin:@[IP]:1521:[ENV]">
            <property name="remarksReporting" value="true"/>
        </jdbcConnection>

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

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

        <sqlMapGenerator targetPackage="com.mapper" targetProject="src/main/resources/META-INF">
            <property name="enableSubPackages" value="false"/>
        </sqlMapGenerator>

        <javaClientGenerator targetPackage="com.mapper" type="XMLMAPPER" targetProject="src/main/java">
            <property name="enableSubPackages" value="false"/>
        </javaClientGenerator>

        <table schema="patr" tableName="%" enableCountByExample="true" enableDeleteByExample="false"
               enableSelectByExample="true" enableUpdateByExample="false" >
            <domainObjectRenamingRule searchString="^Scm" replaceString="" />
        </table>
    </context>
</generatorConfiguration>

【问题讨论】:

【参考方案1】:

为什么不手动配置呢?添加 domainObjectName

的属性
    <table schema="patr" tableName="TIPO_SERVICO" domainObjectName ="TipoServico" enableCountByExample="true" enableDeleteByExample="false"
           enableSelectByExample="true" enableUpdateByExample="false" >
        <domainObjectRenamingRule searchString="^Scm" replaceString="" />
    </table>

【讨论】:

我不使用 domainObjectName 因为我用它来为几十个表生成代码。但是,在我评论 domainObjectRenamingRule 之后,骆驼案例命名又开始起作用了。【参考方案2】:

骆驼案例命名在评论 domainObjectRenamingRule 后再次起作用。

【讨论】:

以上是关于Mybatis Generator 未将表名映射到驼峰式大小写的主要内容,如果未能解决你的问题,请参考以下文章

mybatis自动生成mapper,dao映射文件

使用MyBatis Generator自动创建代码

MyBatis映射实体类插件 MyBatis Generator

使用MyBatis Generator自动生成MyBatis的代码

SSM框架——使用MyBatis Generator自动创建代码

SSM框架——使用MyBatis Generator自动创建代码