首页>代码>SpringBoot+Mybatis+SpringSecurity+Bootstrap+Layui开发java web轻量级小巧视频网站系统>/vrps-sp-ly/mybatis-gen-plugins/src/main/java/com/ly/vrps/plugins/LyPlugin.java
package com.ly.vrps.plugins;

import org.apache.commons.lang3.StringUtils;
import org.mybatis.generator.api.IntrospectedColumn;
import org.mybatis.generator.api.IntrospectedTable;
import org.mybatis.generator.api.PluginAdapter;
import org.mybatis.generator.api.dom.java.*;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Arrays;
import java.util.List;

/**
 * Mybatis generator 忽略Getter和Setter生成
 * @author sunkl
 * @date 2018/12/5
 */
public class LyPlugin extends PluginAdapter {

    private String modelClassName;
    private String modelClassPackageName;

    @Override
    public boolean validate(List<String> warnings) {
        return true;
    }

    @Override
    public boolean modelBaseRecordClassGenerated(TopLevelClass topLevelClass,
                                                 IntrospectedTable introspectedTable) {
        /**
         * 该代码表示在生成class的时候,
         * 向topLevelClass添加一个@Setter和@Getter注解
         */
        topLevelClass.addImportedType("lombok.Data");
        topLevelClass.addImportedType("lombok.AllArgsConstructor");
        topLevelClass.addImportedType("lombok.NoArgsConstructor");
        topLevelClass.addImportedType("lombok.EqualsAndHashCode");
        topLevelClass.addImportedType("javax.persistence.Table");
        topLevelClass.addAnnotation("@Data");
        topLevelClass.addAnnotation("@NoArgsConstructor");
        topLevelClass.addAnnotation("@AllArgsConstructor");
        topLevelClass.addAnnotation("@EqualsAndHashCode(callSuper = false)");
        topLevelClass.addAnnotation("@Table(name = \""+introspectedTable.getFullyQualifiedTable()+"\")");
        topLevelClass.addJavaDocLine("/**");
        String remarks = introspectedTable.getRemarks();
        if (StringUtils.isNotBlank(remarks)) {
            String[] remarkLines = remarks.split(System.getProperty("line.separator"));
            for (String remarkLine : remarkLines) {
                topLevelClass.addJavaDocLine(" * " + remarkLine);
            }
        }
        topLevelClass.addJavaDocLine(" * @author "+System.getProperty("user.name"));
        topLevelClass.addJavaDocLine(" * @date "+ LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss")));
        topLevelClass.addJavaDocLine(" */");
        topLevelClass.addImportedType("com.ly.vrps.common.model.BaseModel");
        topLevelClass.setSuperClass("BaseModel");
        this.modelClassName = topLevelClass.getType().getShortName();
        this.modelClassPackageName = topLevelClass.getType().getFullyQualifiedName();
        return super.modelBaseRecordClassGenerated(topLevelClass,
                introspectedTable);
    }

    /**
     * 该方法在生成每一个属性的getter方法时候调用,
     * 如果我们不想生成getter,直接返回false即可
     * @author sunkl
     * @date 2018年12月5日19:16:28
     * @param method
     * @param topLevelClass
     * @param introspectedColumn
     * @param introspectedTable
     * @param modelClassType
     * @return
     */
    @Override
    public boolean modelGetterMethodGenerated(Method method,
                                              TopLevelClass topLevelClass, IntrospectedColumn introspectedColumn,
                                              IntrospectedTable introspectedTable,
                                              ModelClassType modelClassType) {
        return false;
    }

    /**
     * 该方法在生成每一个属性的setter方法时候调用,
     * 如果我们不想生成setter,直接返回false即可
     * @author sunkl
     * @date 2018年12月5日19:16:23
     * @param method
     * @param topLevelClass
     * @param introspectedColumn
     * @param introspectedTable
     * @param modelClassType
     * @return
     */
    @Override
    public boolean modelSetterMethodGenerated(Method method,
                                              TopLevelClass topLevelClass, IntrospectedColumn introspectedColumn,
                                              IntrospectedTable introspectedTable,
                                              ModelClassType modelClassType) {
        return false;
    }

    @Override
    public boolean modelFieldGenerated(Field field, TopLevelClass topLevelClass,
                                       IntrospectedColumn introspectedColumn, IntrospectedTable introspectedTable,
                                       ModelClassType modelClassType) {
        field.addJavaDocLine("/**");
        field.addJavaDocLine(" * "+introspectedColumn.getRemarks());
        field.addJavaDocLine(" */");
        boolean b = super.modelFieldGenerated(field, topLevelClass, introspectedColumn, introspectedTable, modelClassType);
        List<String> strings = Arrays.asList("id", "createBy", "createTime", "updateBy", "updateTime","remark");
        if(strings.contains(field.getName())){
            return false;
        }
        return b;
    }

    @Override
    public boolean clientGenerated(Interface interfaze, TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {

        interfaze.addJavaDocLine("/**");
        String remarks = introspectedTable.getRemarks();
        if (StringUtils.isNotBlank(remarks)) {
            String[] remarkLines = remarks.split(System.getProperty("line.separator"));
            for (String remarkLine : remarkLines) {
                interfaze.addJavaDocLine(" * " + remarkLine);
            }
        }
        interfaze.addJavaDocLine(" * @author "+System.getProperty("user.name"));
        interfaze.addJavaDocLine(" * @date "+ LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss")));
        interfaze.addJavaDocLine(" */");
        interfaze.addImportedType(new FullyQualifiedJavaType("com.ly.vrps.common.dao.BaseDao"));
        interfaze.addImportedType(new FullyQualifiedJavaType(this.modelClassPackageName));
        interfaze.addSuperInterface(new FullyQualifiedJavaType("BaseDao<"+this.modelClassName+">"));
        return super.clientGenerated(interfaze, topLevelClass, introspectedTable);
    }

    @Override
    public boolean clientInsertSelectiveMethodGenerated(Method method, Interface interfaze, IntrospectedTable introspectedTable) {
        return false;
    }

    @Override
    public boolean clientInsertMethodGenerated(Method method, Interface interfaze, IntrospectedTable introspectedTable) {
        return false;
    }

    @Override
    public boolean clientDeleteByPrimaryKeyMethodGenerated(Method method, Interface interfaze, IntrospectedTable introspectedTable) {
        return false;
    }

    @Override
    public boolean clientSelectByPrimaryKeyMethodGenerated(Method method, Interface interfaze, IntrospectedTable introspectedTable) {
        return false;
    }

    @Override
    public boolean clientUpdateByPrimaryKeySelectiveMethodGenerated(Method method, Interface interfaze, IntrospectedTable introspectedTable) {
        return false;
    }

    @Override
    public boolean providerUpdateByPrimaryKeySelectiveMethodGenerated(Method method, TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
        return false;
    }

}
最近下载更多
zys1525411899  LV3 4月14日
carter171717  LV10 2023年11月20日
include  LV8 2023年6月20日
LusiLi  LV9 2023年5月24日
renyuan  LV9 2023年5月7日
miaaaa  LV7 2023年5月2日
tracywwp  LV4 2023年4月25日
ssh123  LV10 2023年3月27日
LLKYBSA  LV1 2023年3月15日
翰昌之杰2  LV6 2023年2月2日
最近浏览更多
WBelong  LV7 4月2日
2781674049  LV1 3月4日
fff2003  LV6 2023年12月19日
amayaT  LV5 2023年12月14日
wxhua198  LV5 2023年11月30日
lasttimeapp 2023年11月27日
暂无贡献等级
qq573914838  LV5 2023年11月25日
carter171717  LV10 2023年11月20日
wnnmmb  LV2 2023年11月12日
asrfuhiweiou45 2023年11月9日
暂无贡献等级
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友