简介:AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。

简介 | MyBatis-Plus

一、如何使用:

1,新建一个maven项目

2,引入依赖

 <dependencies><!--web 依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--mybatis-plus 依赖--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.3.1.tmp</version></dependency><!--mybatis-plus 代码生成器依赖--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.3.1.tmp</version></dependency><!--freemarker 依赖--><dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId></dependency><!--mysql 依赖--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><scope>test</scope></dependency></dependencies>

二、CodeGenerator工具类

package com.zhao588.generater;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.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.FileOutConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.TemplateConfig;
import com.baomidou.mybatisplus.generator.config.po.TableInfo;
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 {/*** <p>* 读取控制台内容* </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 = System.getProperty("user.dir");gc.setOutputDir(projectPath + "/zhao588-generator/src/main/java");//作者gc.setAuthor("zhao588");//打开输出目录gc.setOpen(false);//xml开启 BaseResultMapgc.setBaseResultMap(true)//xml 开启BaseColumnListgc.setBaseColumnList(true);// 实体属性 Swagger2 注解gc.setSwagger2(true);mpg.setGlobalConfig(gc);// 数据源配置DataSourceConfig dsc = new DataSourceConfig();dsc.setUrl("jdbc:mysql://192.168.63.131:3306/tensquare_user?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia" + "/Shanghai");dsc.setDriverName("com.mysql.cj.jdbc.Driver");dsc.setUsername("root");dsc.setPassword("root");mpg.setDataSource(dsc);// 包配置PackageConfig pc = new PackageConfig();pc.setParent("com.zhao588").setEntity("pojo").setMapper("mapper").setService("service").setServiceImpl("service.impl").setController("controller");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 + "/zhao588-generator/src/main/resources/mapper/"+ tableInfo.getEntityName() + "Mapper"+ StringPool.DOT_XML;}});cfg.setFileOutConfigList(focList);mpg.setCfg(cfg);// 配置模板TemplateConfig templateConfig = new TemplateConfig();//  执行// 执行main方法,在控制台直接输出表名,多个表名用 , 隔开//  结果templateConfig.setXml(null);mpg.setTemplate(templateConfig);// 策略配置StrategyConfig strategy = new StrategyConfig();//数据库表映射到实体的命名策略strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表字段映射到实体的命名策略strategy.setColumnNaming(NamingStrategy.no_change);//lombok模型strategy.setEntityLombokModel(true);//生成 @RestController 控制器strategy.setRestControllerStyle(true);strategy.setInclude(scanner("表名,多个英文逗号分割").split(","));strategy.setControllerMappingHyphenStyle(true);//表前缀strategy.setTablePrefix("t_");mpg.setStrategy(strategy);mpg.setTemplateEngine(new FreemarkerTemplateEngine());mpg.execute();}
}

三,执行

1,执行main方法,在控制台直接输出表名,多个表名用 , 隔开
2,成功之后,后面提示文件生成完成!

3,代码生成如下:

代码生成器AutoGenerator相关推荐

  1. Mybatis Plus最新代码生成器AutoGenerator,更简单更高效!

    一.概述 AutoGenerator 是 MyBatis Plus推出的代码生成器,可以快速生成Entity.Mapper.Mapper XML.Service.Controller等各个模块的代码, ...

  2. 实用的java代码生成器,开箱即用(基于mybatisplus的AutoGenerator)

    spring-boot工程下,自动生成代码,controller层,service层,mapper层. 根据数据库配置好的表,逆向生成实体类和各层结构 1.引入maven <dependency ...

  3. mybatis 代码生成器_spring Boot手把手教学(4): mybatis-plus 代码生成器,自动帮你生成代码

    1.前言 2.安装依赖 3.配置 4.生成器代码 5.代码展示 6.代码测试 6.1 添加工作 6.2 其余操作 1.前言 俗话说:工欲善其事,必先利其器. 我们在使用springBoot开发项目的, ...

  4. automybatis mysql_mybatis-plus:使用Mybatis-AutoGenerator代码生成器(1)

    AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成包括 Entity.Mapper.Mapper XML.Service.Contr ...

  5. MyBatis-Plus 代码生成器

    关注 "弋凡"(YiFan)微信公众号吧 记录简单笔记 做你的最爱 注意 strategy.setInclude(); strategy.setInclude("user ...

  6. JavaWeb界面在线配置代码生成器

    关于直接main方法运行生成代码可参考我的这篇文章:MP实战系列(六)之代码生成器讲解 在线配置主要参考jeesite和jeecg,gun等开源项目,但是与它们相比又有很多不同? 与jeesite相比 ...

  7. MybatisPlus代码生成器配置

    引入jar包:pom.xml <dependency><groupId>com.baomidou</groupId><artifactId>mybati ...

  8. MyBatis Plus Generator——MyBatis Plus代码生成器DEMO

    官方文档 https://mp.baomidou.com/guide/generator.html Maven <dependency><groupId>mysql</g ...

  9. mybatis-plus代码生成器使用和代码

    在springboot项目中第一次用这个,试了一下,能成功启动和生成文件但目前还有问题,先记录一下: 依赖 pom.xml: <?xml version="1.0" enco ...

  10. 新增房源服务实现之AutoGenerator使用以及创建pojo对象

    package cn.learn.haoke.dubbo.server.pojo;import lombok.Data;import java.util.Date;@Data public abstr ...

最新文章

  1. Eclipse发布MicroProfile 1.4和2.0
  2. Yii2.0实现微信公众号后台开发
  3. Message-Digest Algorithm 5
  4. Javascript 用本页面文本域中的HTML代码打开一个空白窗口来运行
  5. 【HDU - 3410 】 Passing the Message(单调栈)
  6. Linux网络协议栈:一个TCP链接的耗时
  7. python第三方库介绍和安装
  8. numpy.mean() in Python
  9. Android SQLite数据库升级的问题
  10. mysql 改变 执行计划_诡异的MySql执行计划的更改
  11. 崩坏学园2及大部分采用ETC1压缩格式的Unity3D游戏的拆包图处理
  12. Illustrator最新教程,如何在 Illustrator 中微调图标?
  13. 移动通信matlab实现,现代移动通信中的调制技术研究及Matlab实现
  14. 【C语言】英雄联盟英雄查询系统(源码)
  15. jq 判断手机端还是PC端
  16. 给Testerhome测试小道消息做个硬广告
  17. gazebo publish pose
  18. uniapp实现小程序预览、保存、转发pdf/word/excel等文件
  19. “互联网+教育”促进优质资源共享
  20. html input 删除线,css样式实现字体删除线效果

热门文章

  1. 基于python版本的谷歌GEE云计算平台使用,以DEM数据下载为例(GEE系列1)
  2. 尚硅谷2022 jenkins教程笔记
  3. php课程设计学生信息管理系统,学生成绩管理系统/学生信息管理系统
  4. [Java]图书管理系统
  5. 需求分析之软件界面设计
  6. openGauss企业级开源数据库获第十届中国电子信息博览会金奖
  7. 舒尔特表-计时开始-暂停-继续 js
  8. 舒尔特注意力训练表格_用微信小程序里训练提升你的专注力
  9. VS2017 Visual Assist X破解方法
  10. Java8 实战系列-03-lambda 表达式实战