废话不多说,直接上代码


import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.InjectionConfig;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert;
import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;public class CodeGenerator {/**u* <p>* 读取控制台内容up,* </p>*/public static String scanner(String tip) {Scanner scanner = new Scanner(System.in);StringBuilder help = new StringBuilder();help.append("请输入" + tip + ":");System.out.println(help.toString());if (scanner.hasNext()) {String ipt = scanner.next();if (StringUtils.isNotEmpty(ipt)) {return ipt;}}throw new MybatisPlusException("请输入正确的" + tip + "!");}public static void main(String[] args) {// 代码生成器AutoGenerator mpg = new AutoGenerator();// 全局配置GlobalConfig gc = new GlobalConfig();String projectPath = "D:\\morui\\work\\dormbs\\servercode";gc.setOutputDir(projectPath + "/src/main/java");gc.setOpen(false);gc.setSwagger2(true); //实体属性 Swagger2 注解gc.setAuthor("mr");mpg.setGlobalConfig(gc);// 数据源配置DataSourceConfig dsc = new DataSourceConfig();dsc.setDbType(DbType.MYSQL);dsc.setUrl("jdbc:mysql://localhost:3306/dorm?useUnicode=true&useSSL=false&characterEncoding=utf8&tinyInt1isBit=false&serverTimezone=GMT");dsc.setDriverName("com.mysql.cj.jdbc.Driver");dsc.setUsername("root");dsc.setPassword("123456");dsc.setTypeConvert(new MySqlTypeConvert() {@Overridepublic DbColumnType processTypeConvert(GlobalConfig globalConfig, String fieldType) {if (fieldType.toLowerCase().contains("tinyint")) {return DbColumnType.INTEGER;}if (fieldType.toLowerCase().contains("date")) {return DbColumnType.DATE;}if (fieldType.toLowerCase().contains("timestamp")) {return DbColumnType.DATE;}return (DbColumnType) super.processTypeConvert(globalConfig, fieldType);}});mpg.setDataSource(dsc);// 包配置PackageConfig pc = new PackageConfig();pc.setModuleName(scanner("模块名"));pc.setParent("com.tdysj.dorm.modules");mpg.setPackageInfo(pc);// 自定义配置InjectionConfig cfg = new InjectionConfig() {@Overridepublic void initMap() {// to do nothing}};// 如果模板引擎是 freemarkerString templatePath = "/templates/mapper.xml.ftl";// 如果模板引擎是 velocity// String templatePath = "/templates/mapper.xml.vm";// 自定义输出配置List<FileOutConfig> focList = new ArrayList<>();// 自定义配置会被优先输出focList.add(new FileOutConfig(templatePath) {@Overridepublic String outputFile(TableInfo tableInfo) {// 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!return projectPath + "/src/main/resources/mapper/" + pc.getModuleName()+ "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;}});/*cfg.setFileCreate(new IFileCreate() {@Overridepublic boolean isCreate(ConfigBuilder configBuilder, FileType fileType, String filePath) {// 判断自定义文件夹是否需要创建checkDir("调用默认方法创建的目录");return false;}});*/cfg.setFileOutConfigList(focList);mpg.setCfg(cfg);//        // 配置模板TemplateConfig templateConfig = new TemplateConfig();
//
//        // 配置自定义输出模板
//        //指定自定义模板路径,注意不要带上.ftl/.vm, 会根据使用的模板引擎自动识别
//        // templateConfig.setEntity("templates/entity2.java");
//         templateConfig.setService();
         templateConfig.setController();
//
//        templateConfig.setMapper(null);templateConfig.setXml(null);mpg.setTemplate(templateConfig);// 策略配置StrategyConfig strategy = new StrategyConfig();strategy.setNaming(NamingStrategy.underline_to_camel);strategy.setColumnNaming(NamingStrategy.underline_to_camel);
//        strategy.setSuperEntityClass("com.baomidou.ant.common.BaseEntity");strategy.setEntityLombokModel(true);strategy.setRestControllerStyle(true);// 公共父类
//        strategy.setSuperControllerClass("com.baomidou.ant.common.BaseController");// 写于父类中的公共字段
//        strategy.setSuperEntityColumns("id");strategy.setInclude(scanner("表名").split(","));strategy.setControllerMappingHyphenStyle(true);strategy.setTablePrefix("");mpg.setStrategy(strategy);mpg.setTemplateEngine(new FreemarkerTemplateEngine());mpg.execute();}
}

改好配置后在idea或者eclipse中直接右键运行即可根据提示进行生成代码。
生成效果:

根据你设置的模块名自动生成。


提供更多源码和资源

spring boot中mybatisPlus代码生成器源码相关推荐

  1. Spring Boot 核心原理与源码解析 - 目录

    准备重新写 SpringBoot 配置文件解析原理 , 先在这里把要写的内容记下来 Spring Boot 核心原理与源码解析 - 目录 1\何时解析\如何解析 application.propert ...

  2. springsecurity sessionregistry session共享_要学就学透彻!Spring Security 中 CSRF 防御源码解析...

    今日干货 刚刚发表查看:66666回复:666 公众号后台回复 ssm,免费获取松哥纯手敲的 SSM 框架学习干货. 上篇文章松哥和大家聊了什么是 CSRF 攻击,以及 CSRF 攻击要如何防御.主要 ...

  3. 要学就学透彻!Spring Security 中 CSRF 防御源码解析

    上篇文章松哥和大家聊了什么是 CSRF 攻击,以及 CSRF 攻击要如何防御.主要和大家聊了 Spring Security 中处理该问题的几种办法. 今天松哥来和大家简单的看一下 Spring Se ...

  4. spring boot实战(第十篇)Spring boot Bean加载源码分析

    前言 前面的文章描述了Application对应Bean的创建,本篇将阐述spring boot中bean的创建过程 refresh 首先来看SpringApplication#run方法中refre ...

  5. Spring Boot - security 实战与源码分析

    2019独角兽企业重金招聘Python工程师标准>>> 一.实现步骤 1.在application.yml中添加起步依赖 2.自定义安全类 package com.example.d ...

  6. Spring Boot 基于注解驱动源码分析--自动配置

    Spring作为Java开发最常用的容器管理框架,使用注解为我们提供很多便捷,下面通过源码分析Spring基于注解驱动自动配置的原理 首先介绍两个关键类: ConfigurationClassPost ...

  7. 狂神Spring Boot 员工管理系统 【源码 + 笔记 + web素材】 超详细整理

    目录 员工管理系统 1.准备工作 1.1.导入资源 1.2.编写pojo层 1.3.编写dao层 2.首页实现 2.1.引入Thymeleaf 2.2.编写MyMvcConfig 2.3.测试首页 3 ...

  8. spring boot车辆管理系统毕业设计源码031034

    车辆管理系统的设计与实现 摘 要 科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用.信息时代的到来已成为不可阻挡的时尚潮流,人类发 ...

  9. 毕设项目 Spring Boot毕业设计管理系统(含源码+论文)

    文章目录 1 项目简介 2 实现效果 2.1 界面展示 3 设计方案 3.1 概述 3.2 系统流程 3.2.1 系统开发流程 3.3.2 教师登录流程 3.3.3 系统操作流程 3.3 系统结构设计 ...

  10. spring boot校园管理系统 毕业设计源码021104

    目 录 摘要 1 1 绪论 1 1.1研究意义 1 1.2研究方法 1 1.3系统开发技术的特色 1 1.4论文结构与章节安排 1 2 校园管理系统分析 3 2.1 可行性分析 3 2.2 系统流程分 ...

最新文章

  1. 2021-2027年中国市医疗电子场投资分析及前景预测报告
  2. Maven工程引入jar包(转)
  3. 计算机网络谢希仁第七版课后答案第六章 应用层
  4. win10 rabbitMQ的安装与测试
  5. Java可视化开发开源框架
  6. nyist 132Prime Ring Problem
  7. .net core读取配置文件
  8. 在VMware Workstation中设置双网卡实现SSH使用固定IP登录并且在虚拟系统中任意访问Internet...
  9. 最全的cisco ios下载,思科ios下载
  10. 前端学习(3216):总结state
  11. 2013计算机一级考试综合试题答案,2013全国计算机等级考试试题题库及答案.doc
  12. Android笔记(七十三) Android权限问题整理 非常全面
  13. VB取得TextBox、RichTextBox光标所在的行和列(支持汉字)
  14. html 高德地图坐标,点标记-调起高德地图-示例中心-JS API 示例 | 高德地图API
  15. mongodb查询不等于某个字段_Oracle单表查询多字段,不使用*
  16. ssm框架的简要介绍
  17. Linux正则表达式
  18. 斯坦福句法分析 java_使用Stanford Parser进行句法分析
  19. LED驱动芯片AiP650
  20. 【算法百题之四十】整数转罗马数字

热门文章

  1. 网络摄像视频方案整理
  2. 河北计算机四六级报名入口,英语四六级考试报名入口
  3. VScode输入英文感叹号!没有提示模板!!
  4. python桌面程序臃肿_危险的转变:Python正在从简明转向臃肿,从实用转向媚俗
  5. java虚拟机 for win7 64位_最新win7 64位旗舰版安装版下载(64位iso镜像)
  6. 特殊命令之REG命令
  7. 打字会出声音的计算机,笔记本电脑打字时发出声响敲击电脑时也有回声发出怎么办? 爱问知识人...
  8. 实战一:给定一段音频,请提取12维MFCC特征,阅读代码预加重、分帧、加窗部分,完善作业代码中fbank和mfcc部分,并给出最终的Fbank和MFCC特征,用默认的配置参数,无需进行修改
  9. Excel VBA内部函数大全
  10. upc第十一场2020.11.30