惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
Check Point Blog
罗磊的独立博客
量子位
Microsoft Azure Blog
Microsoft Azure Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
J
Java Code Geeks
M
MIT News - Artificial intelligence
月光博客
月光博客
IT之家
IT之家
D
DataBreaches.Net
A
About on SuperTechFans
博客园 - 三生石上(FineUI控件)
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Last Week in AI
Last Week in AI
D
Docker
The GitHub Blog
The GitHub Blog
B
Blog
V
Visual Studio Blog
博客园 - Franky
N
Netflix TechBlog - Medium
博客园 - 【当耐特】
Martin Fowler
Martin Fowler
博客园 - 聂微东
U
Unit 42

博客园 - 月·漩涡

使用钉钉远程操作你的claude code java写的马赛克拼图生成软件 mybatis-generator 类型转化插件 mybatis-generator lombok插件 mybatis-generator 唯一索引插件 mybatis-generator 自定义插件 Dubbo 使用rest协议发布http服务 Dubbo封装rest服务返回结果 dubbo rest返回值异常Incompatible types: declared root type 解决resteasy上传表单文件名乱码 RSA加密解密及RSA加签验签 使用OTP动态口令(每分钟变一次)进行登录认证 讲一下创业公司的技术架构演进 开源分布式任务调度平台Cuckoo-Schedule Nginx二级域名配置 Java分页下载 Solr6+IKAnalyzer分词环境搭建 消息发送平台简单架构设计 优先级线程池实现
mybatis-generator 注释插件
月·漩涡 · 2020-10-27 · via 博客园 - 月·漩涡

插件地址(https://github.com/suyin58/mybatis-generator-tddl/blob/master/generator-plugin/src/main/java/com/toolplat/generator/plugins/CommentGenerator.java)

可以修改类注释、属性注释、方法注释等

插件需要继承DefaultCommentGenerator

public class CommentGenerator extends DefaultCommentGenerator {
}

View Code

类注释需要重写addModelClassComment方法

  /**
     * set model comment from table remark
     * @param topLevelClass
     * @param introspectedTable
     */
    @Override
    public void addModelClassComment(TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {

        String auth = properties.getProperty("author");
        String tableDesc = introspectedTable.getRemarks();
        topLevelClass.addJavaDocLine("/**");
        topLevelClass.addJavaDocLine(" * " + tableDesc);
        if (null != auth && auth.length() > 0) {
            topLevelClass.addJavaDocLine(" * @author " + auth);
        }
        topLevelClass.addJavaDocLine(" */");
    }

View Code

属性注释需要重写addFieldComment方法

/**
     * set field comment from field remark
     * @param field
     * @param introspectedTable
     * @param introspectedColumn
     */
    @Override
    public void addFieldComment(Field field, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) {
        String remark = introspectedColumn.getRemarks();
        field.addJavaDocLine("/**");
        field.addJavaDocLine(" * " + remark);
        field.addJavaDocLine(" */");
    }

View Code

mapper方法注释需要重写addGeneralMethodComment方法

 /**
     * remove java mapping coment
     *
     * @param method
     * @param introspectedTable
     */
    @Override
    public void addGeneralMethodComment(Method method, IntrospectedTable introspectedTable) {
//        method.addJavaDocLine("/**");
//        method.addJavaDocLine(" * auto method:" + method.getName());
//        if (method.getParameters() != null && method.getParameters().size() > 0) {
//            for (Parameter param : method.getParameters()) {
//                method.addJavaDocLine(" * @param " + param.getName());
//            }
//        }
//        Optional<FullyQualifiedJavaType> ret = method.getReturnType();
//        if (ret.isPresent()) {
//            method.addJavaDocLine(" * @return " + ret.get().getShortName());
//        }
//        method.addJavaDocLine(" */");
    }

View Code

生成效果:

package com.toolplat.demo.domain;

import java.io.Serializable;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

/**
 * 单个uk测试
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class TableOneUniqueKeyPO implements Serializable {
    private static final long serialVersionUID = 21323185007909L;

    /**
     * 多群主键
     */
    private Long orgId;

    /**
     * 多码
     */
    private String code;

    /**
     * id
     */
    private Long id;

    /**
     * 创建时间
     */
    private Date gmtCreate;

    /**
     * 修改时间
     */
    private Date gmtModified;

    /**
     * 会话ID
     */
    private String cid;
}

实体类

mapper方法:

package com.toolplat.demo.dao;

import com.toolplat.demo.domain.TableOneUniqueKeyPO;
import com.toolplat.demo.domain.TableOneUniqueKeyPOExample;
import java.util.List;
import org.apache.ibatis.annotations.Param;

public interface TableOneUniqueKeyMapper {
    long countByExample(TableOneUniqueKeyPOExample example);

    int deleteByExample(TableOneUniqueKeyPOExample example);

    int deleteByPrimaryKey(@Param("orgId") Long orgId, @Param("code") String code);

    int insert(TableOneUniqueKeyPO record);

    int insertSelective(TableOneUniqueKeyPO record);

    List<TableOneUniqueKeyPO> selectByExample(TableOneUniqueKeyPOExample example);

    TableOneUniqueKeyPO selectByExampleForUpdate(TableOneUniqueKeyPOExample example);

    TableOneUniqueKeyPO selectByPrimaryKey(@Param("orgId") Long orgId, @Param("code") String code);

    TableOneUniqueKeyPO selectByPrimaryKeyForUpdate(@Param("orgId") Long orgId, @Param("code") String code);

    int updateByExampleSelective(@Param("record") TableOneUniqueKeyPO record, @Param("example") TableOneUniqueKeyPOExample example);

    int updateByExample(@Param("record") TableOneUniqueKeyPO record, @Param("example") TableOneUniqueKeyPOExample example);

    int updateByPrimaryKeySelective(TableOneUniqueKeyPO record);

    int updateByPrimaryKey(TableOneUniqueKeyPO record);

    TableOneUniqueKeyPO selectByUniqueKey(@Param("orgId") Long orgId, @Param("code") String code);

    TableOneUniqueKeyPO selectByUniqueKeyForUpdate(@Param("orgId") Long orgId, @Param("code") String code);

    int updateByUniqueKeySelective(TableOneUniqueKeyPO record);

    int deleteByUniqueKey(@Param("orgId") Long orgId, @Param("code") String code);

    int batchInsert(@Param("list") List<TableOneUniqueKeyPO> list);

    int upsertByPrimaryKey(TableOneUniqueKeyPO record);

    int upsertByUniqueKey(TableOneUniqueKeyPO record);
}

mapper方法注释