itfsw / mybatis-generator-plugin

Mybatis Generator 代码生成插件拓展,增加:查询单条数据插件(SelectOneByExamplePlugin)、MySQL分页插件(LimitPlugin)、数据Model链式构建插件(ModelBuilderPlugin)、Example Criteria 增强插件(ExampleEnhancedPlugin)、Example 目标包修改插件(ExampleTargetPlugin)、批量插入插件(BatchInsertPlugin)、逻辑删除插件(LogicalDeletePlugin)、数据Model属性对应Column获取插件(ModelColumnPlugin)、存在即更新(UpsertPlugin)、Selective选择插入更新增强插件(SelectiveEnhancedPlugin)、Table增加前缀插件(TableSuffixPlugin)、自定义注释插件(CommentPlugin)、增量插件(IncrementsPlugin)、查询结果选择性返回插件(SelectSelectivePlugin)、乐观锁插件(OptimisticLockerPlugin)、LombokPlugin等拓展。
Apache License 2.0
1.35k stars 397 forks source link

TargetPackagePlugin #106

Open luodexin opened 4 years ago

luodexin commented 4 years ago

有的项目组要求按照业务逻辑划分子包,在业务子包中进一步分controller、service, entity、mapper...., ModelClass需要生成在entity包中,ClientClass需要生成在mapper包中,而SQLMAP文件需要在/src/map/xxx/文件夹下,targetPackage属性和domainObjectName无法实现 TargetPackagePlugin可用为一个表的ModelClass、ClientClass、SQLMap分别设置不同的targetPackage

插件:

<xml>
    <plugin type="com.itfsw.mybatis.generator.plugins.TargetPackagePlugin"/>

    <table schema="FG_DB" tableName="USER">
        <property name="modelTargetPackage" value="account.entity" />
        <property name="clientTargetPackage" value="account.mapper"/>
        <property name="sqlMapTargetPackage" value="account" />
    </table>
</xml>

生成的三类文件的包名分别为<javaModelGenerator><javaClientGenerator><sqlMapGenerator>标签中配置的targetPackage属性与<table>标签中配置的xxxTargetPackage属性的拼接结果