MybatisPlus自定义模版中能获取到的信息

使用MybatisPlus的AutoGenerator生成代码

这个可自行官网查看,或者搜索引擎查一下一大堆可以参考的,这里就不过多叙述。

模版中能获取到哪些信息

官方没有给出在自定义模版中你能获取到哪些信息来生成你想要的代码,所以本人就看了一下源码,能获取到的信息都在com.baomidou.mybatisplus.generator.engine.AbstractTemplateEngine类的getObjectMap方法中,如下:

    /**
     * <p>
     * 渲染对象 MAP 信息
     * </p>
     *
     * @param tableInfo 表信息对象
     * @return
     */
    public Map<String, Object> getObjectMap(TableInfo tableInfo) {
        Map<String, Object> objectMap = new HashMap<>();
        ConfigBuilder config = this.getConfigBuilder();
        if (config.getStrategyConfig().isControllerMappingHyphenStyle()) {
            objectMap.put("controllerMappingHyphenStyle", config.getStrategyConfig().isControllerMappingHyphenStyle());
            objectMap.put("controllerMappingHyphen", StringUtils.camelToHyphen(tableInfo.getEntityPath()));
        }
        objectMap.put("restControllerStyle", config.getStrategyConfig().isRestControllerStyle());
        objectMap.put("package", config.getPackageInfo());
        GlobalConfig globalConfig = config.getGlobalConfig();
        objectMap.put("author", globalConfig.getAuthor());
        objectMap.put("idType", globalConfig.getIdType() == null ? null : globalConfig.getIdType().toString());
        objectMap.put("logicDeleteFieldName", config.getStrategyConfig().getLogicDeleteFieldName());
        objectMap.put("versionFieldName", config.getStrategyConfig().getVersionFieldName());
        objectMap.put("activeRecord", globalConfig.isActiveRecord());
        objectMap.put("kotlin", globalConfig.isKotlin());
        objectMap.put("date", new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
        objectMap.put("table", tableInfo);
        objectMap.put("enableCache", globalConfig.isEnableCache());
        objectMap.put("baseResultMap", globalConfig.isBaseResultMap());
        objectMap.put("baseColumnList", globalConfig.isBaseColumnList());
        objectMap.put("entity", tableInfo.getEntityName());
        objectMap.put("entityColumnConstant", config.getStrategyConfig().isEntityColumnConstant());
        objectMap.put("entityBuilderModel", config.getStrategyConfig().isEntityBuilderModel());
        objectMap.put("entityLombokModel", config.getStrategyConfig().isEntityLombokModel());
        objectMap.put("entityBooleanColumnRemoveIsPrefix", config.getStrategyConfig().isEntityBooleanColumnRemoveIsPrefix());
        objectMap.put("superEntityClass", this.getSuperClassName(config.getSuperEntityClass()));
        objectMap.put("superMapperClassPackage", config.getSuperMapperClass());
        objectMap.put("superMapperClass", this.getSuperClassName(config.getSuperMapperClass()));
        objectMap.put("superServiceClassPackage", config.getSuperServiceClass());
        objectMap.put("superServiceClass", this.getSuperClassName(config.getSuperServiceClass()));
        objectMap.put("superServiceImplClassPackage", config.getSuperServiceImplClass());
        objectMap.put("superServiceImplClass", this.getSuperClassName(config.getSuperServiceImplClass()));
        objectMap.put("superControllerClassPackage", config.getSuperControllerClass());
        objectMap.put("superControllerClass", this.getSuperClassName(config.getSuperControllerClass()));
        return objectMap;
    }

下面我就顺便整理一下方便以后查看

属性类型描述示例
controllerMappingHyphenStylebooleancontrollerMapping是否为连字符形式驼峰:@RequestMapping("/managerUserActionHistory")
连字符:@RequestMapping("/manager-user-action-history")
controllerMappingHyphenString实体类的连字符形式manager-user-action-history
restControllerStyleboolean是否为RestController模式
packageMap所有包配置信息
package.EntityStringEntity所在包路径com.geek.sean.test.model
package.MapperStringMapper所在包路径com.geek.sean.test.mapper
package.XmlStringMapper的xml文件所在包路径com.geek.sean.test.mapper.xml
package.ServiceImplStringService实现类所在包路径com.geek.sean.test.service.impl
package.ServiceStringService所在包路径com.geek.sean.test.service
package.ControllerStringController所在包路径com.geek.sean.test.controller
authorStringGlobalConfig中配置的author
idTypeStringGlobalConfig中配置的idType
logicDeleteFieldNameString策略配置项中配置的逻辑删除属性名称
versionFieldNameString策略配置项中配置的乐观锁属性名称
activeRecordboolean是否开启ActiveRecord模式
kotlinboolean是否开启 Kotlin 模式
dateString当前日期(yyyy-MM-dd)2019-07-09
tableTableInfo表信息,关联到当前字段信息
table.nameString表名例:sys_user
table.commentString表描述用户信息表
table.entityNameString实体类名称SysUser
table.mapperNameStringMapper类名SysUserMapper
table.xmlNameStringMapper对应的xml名称SysUserMapper
table.serviceNameStringService名称SysUserService
table.serviceImplNameStringService实现类名称SysUserServiceImpl
table.controllerNameStringController名称SysUserController
table.fieldsList<TableField>字段信息集合
table.fields[n].nameString字段名称user_id
table.fields[n].typeString字段类型int(11)、varchar(64)、timestamp、char(1)
table.fields[n].propertyNameString属性名userId、userName
table.fields[n].columnTypeString属性类型String、Integer
table.fields[n].commentString字段描述用户名
table.importPackagesList<String>引入包集合[‘com.baomidou.mybatisplus.enums.IdType’,‘java.util.Date’]
table.fieldNamesString表字段名,逗号分隔user_id, user_name, password
enableCacheboolean是否在xml中添加二级缓存配置
baseResultMapboolean是否开启 BaseResultMap
baseColumnListboolean是否开启 baseColumnList
entityStringEntity类名
entityColumnConstantboolean【实体】是否生成字段常量(默认 false)
entityBuilderModelboolean【实体】是否为构建者模型(默认 false)
entityLombokModelboolean【实体】是否为lombok模型(默认 false)
entityBooleanColumnRemoveIsPrefixbooleanBoolean类型字段是否移除is前缀(默认 false)比如 : 数据库字段名称 : ‘is_xxx’,类型为 : tinyint. 在映射实体的时候则会去掉is,在实体类中映射最终结果为 xxx
superEntityClassStringEntity父类BaseEntity
superMapperClassPackageStringMapper父类包路径com.baomidou.mybatisplus.mapper.BaseMapper
superMapperClassStringMapper父类BaseMapper
superServiceClassPackageStringService父类包路径com.baomidou.mybatisplus.service.IService
superServiceClassStringService父类IService
superServiceImplClassPackageStringService实现类父类包路径com.baomidou.mybatisplus.service.impl.ServiceImpl
superServiceImplClassStringService实现类父类ServiceImpl
superControllerClassPackageStringController类父类包路径
superControllerClassStringController父类

总结了一上午,个别字段没有放上,自己用到时候可以再去源码看看,希望可以让各位读者有所收获

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值