温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

mybatis-generator 配合tk.mapper 代码自动生成 坑

发布时间:2020-10-24 04:17:57 来源:网络 阅读:2784 作者:北极冷冷冷 栏目:编程语言

记录 tk.mybatis.mapper.generator.TemplateFilePlugin templatePath 的坑

generatorConfiguration.xml 配置文件

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

<generatorConfiguration>
<properties resource="generator/config.properties"/>

<context id="Mysql" targetRuntime="MyBatis3Simple" defaultModelType="flat">
    <property name="beginningDelimiter" value="`"/>
    <property name="endingDelimiter" value="`"/>

    <plugin type="tk.mybatis.mapper.generator.MapperPlugin">
        <property name="mappers" value="tk.mybatis.mapper.common.Mapper,tk.mybatis.mapper.common.MySqlMapper"/>
        <!-- caseSensitive 是否区分大小写,默认值 false。如果数据库区分大小写,这里就需要配置为 true,这样当表名为 USER 时,会生成 @Table(name = "USER") 注解,否则使用小写 user 时会找不到表。 -->

<!-- <property name="caseSensitive" value="false"/>-->
<!-- forceAnnotation 是否强制生成注解,默认 false,如果设置为 true,不管数据库名和字段名是否一致,都会生成注解(包含 @Table 和 @Column)。 -->
<!-- <property name="forceAnnotation" value="false"/>-->
<!-- beginningDelimiter 和 endingDelimiter 开始和结束分隔符,对于有关键字的情况下适用。-->
<!-- <property name="beginningDelimiter" value=""/&gt;--&gt;<br/>&lt;!-- &lt;property name="endingDelimiter" value=""/>-->
<!-- useMapperCommentGenerator 是否使用通用 Mapper 提供的注释工具,默认 true 使用,这样在生成代码时会包含字段的注释(目前只有 mysql 和 oracle 支持),设置 false 后会用默认的,或者你可以配置自己的注释插件。-->
<!-- <property name="useMapperCommentGenerator " value="true"/>-->
<!-- generateColumnConsts 在生成的 model中,增加字段名的常量,便于使用 Example 拼接查询条件的时候使用。-->
<!-- <property name="generateColumnConsts" value="`"/> -->
<!-- lombok 增加 model 代码生成时,可以直接生成 lombok 的 @Getter@Setter@ToString@Accessors(chain = true) 四类注解, 使用者在插件配置项中增加 <property name="lombok" value="Getter,Setter,ToString,Accessors"/> 即可生成对应包含注解的 model 类。-->
<!-- <property name="lombok" value="Getter,Setter,ToString,Accessors"/>-->
<property name="lombok" value="Data"/>
<property name="swagger" value="true"/>
</plugin>
<!--mapper接口-->
<plugin type="tk.mybatis.mapper.generator.TemplateFilePlugin">
<property name="targetProject" value="src/main/java"/>
<property name="targetPackage" value="com.jcbjcb.tools.generator.mapper"/>
<property name="templatePath" value="file:src\main\resources\generator/template/mapper.ftl"/>
<property name="mapperSuffix" value="Mapper"/>
<property name="fileName" value="${tableClass.shortClassName}${mapperSuffix}.java"/>
<!--默认值是下面这个,可以不配置-->
<property name="templateFormatter"
value="tk.mybatis.mapper.generator.formatter.FreemarkerTemplateFormatter"/>
<property name="encoding" value="UTF-8"/>

    </plugin>

    <!--输出单个文件,每个表都会生成一个对应的文件 biz-->
    <plugin type="tk.mybatis.mapper.generator.TemplateFilePlugin">
        <property name="targetProject" value="src/main/java"/>
        <property name="targetPackage" value="com.jcbjcb.tools.generator.biz"/>
        <property name="templatePath" value="file:src\main\resources\generator/template/biz.ftl"/>
        <property name="mapperSuffix" value="Biz"/>
        <property name="fileName" value="${tableClass.shortClassName}${mapperSuffix}.java"/>
        <!--默认值是下面这个,可以不配置-->
        <property name="templateFormatter"
                  value="tk.mybatis.mapper.generator.formatter.FreemarkerTemplateFormatter"/>
        <property name="encoding" value="UTF-8"/>
    </plugin>

    <!--输出单个文件,每个表都会生成一个对应的文件 controller-->
    <plugin type="tk.mybatis.mapper.generator.TemplateFilePlugin">
        <property name="targetProject" value="src/main/java"/>
        <property name="targetPackage" value="com.jcbjcb.tools.generator.control"/>
        <property name="templatePath" value="file:src\main\resources\generator/template/controller.ftl"/>
        <property name="mapperSuffix" value="Controller"/>
        <property name="fileName" value="${tableClass.shortClassName}${mapperSuffix}.java"/>
        <!--默认值是下面这个,可以不配置-->
        <property name="templateFormatter"
                  value="tk.mybatis.mapper.generator.formatter.FreemarkerTemplateFormatter"/>
        <property name="encoding" value="UTF-8"/>
    </plugin>

    <jdbcConnection driverClass="${jdbc.driverClass}"
                    connectionURL="${jdbc.url}"
                    userId="${jdbc.user}"
                    password="${jdbc.password}">
    </jdbcConnection>

    <javaModelGenerator targetPackage="com.jcbjcb.tools.generator.entity"
                        targetProject="src/main/java"/>

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

<!-- <javaClientGenerator targetPackage="com.jcbjcb.generator.mapper"-->
<!-- targetProject="src/main/java"-->
<!-- type="XMLMAPPER"/>-->

    <table tableName="tab_school">
        <generatedKey column="id" sqlStatement="mysql" identity="true"/>
    </table>
</context>

</generatorConfiguration>

坑:<property name="templatePath" value="file:src\main\resources\generator/template/mapper.ftl"/>
必须加 file: 路径相对路径 不能写成:generator/template/mapper.ftl

参考 :https://github.com/abel533/Mapper/tree/master/generator
https://github.com/abel533/Mapper/issues/543

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI