代码生成器AutoGenerator
简介: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();}
}
三,执行
3,代码生成如下:
代码生成器AutoGenerator相关推荐
- Mybatis Plus最新代码生成器AutoGenerator,更简单更高效!
一.概述 AutoGenerator 是 MyBatis Plus推出的代码生成器,可以快速生成Entity.Mapper.Mapper XML.Service.Controller等各个模块的代码, ...
- 实用的java代码生成器,开箱即用(基于mybatisplus的AutoGenerator)
spring-boot工程下,自动生成代码,controller层,service层,mapper层. 根据数据库配置好的表,逆向生成实体类和各层结构 1.引入maven <dependency ...
- mybatis 代码生成器_spring Boot手把手教学(4): mybatis-plus 代码生成器,自动帮你生成代码
1.前言 2.安装依赖 3.配置 4.生成器代码 5.代码展示 6.代码测试 6.1 添加工作 6.2 其余操作 1.前言 俗话说:工欲善其事,必先利其器. 我们在使用springBoot开发项目的, ...
- automybatis mysql_mybatis-plus:使用Mybatis-AutoGenerator代码生成器(1)
AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成包括 Entity.Mapper.Mapper XML.Service.Contr ...
- MyBatis-Plus 代码生成器
关注 "弋凡"(YiFan)微信公众号吧 记录简单笔记 做你的最爱 注意 strategy.setInclude(); strategy.setInclude("user ...
- JavaWeb界面在线配置代码生成器
关于直接main方法运行生成代码可参考我的这篇文章:MP实战系列(六)之代码生成器讲解 在线配置主要参考jeesite和jeecg,gun等开源项目,但是与它们相比又有很多不同? 与jeesite相比 ...
- MybatisPlus代码生成器配置
引入jar包:pom.xml <dependency><groupId>com.baomidou</groupId><artifactId>mybati ...
- MyBatis Plus Generator——MyBatis Plus代码生成器DEMO
官方文档 https://mp.baomidou.com/guide/generator.html Maven <dependency><groupId>mysql</g ...
- mybatis-plus代码生成器使用和代码
在springboot项目中第一次用这个,试了一下,能成功启动和生成文件但目前还有问题,先记录一下: 依赖 pom.xml: <?xml version="1.0" enco ...
- 新增房源服务实现之AutoGenerator使用以及创建pojo对象
package cn.learn.haoke.dubbo.server.pojo;import lombok.Data;import java.util.Date;@Data public abstr ...
最新文章
- Eclipse发布MicroProfile 1.4和2.0
- Yii2.0实现微信公众号后台开发
- Message-Digest Algorithm 5
- Javascript 用本页面文本域中的HTML代码打开一个空白窗口来运行
- 【HDU - 3410 】 Passing the Message(单调栈)
- Linux网络协议栈:一个TCP链接的耗时
- python第三方库介绍和安装
- numpy.mean() in Python
- Android SQLite数据库升级的问题
- mysql 改变 执行计划_诡异的MySql执行计划的更改
- 崩坏学园2及大部分采用ETC1压缩格式的Unity3D游戏的拆包图处理
- Illustrator最新教程,如何在 Illustrator 中微调图标?
- 移动通信matlab实现,现代移动通信中的调制技术研究及Matlab实现
- 【C语言】英雄联盟英雄查询系统(源码)
- jq 判断手机端还是PC端
- 给Testerhome测试小道消息做个硬广告
- gazebo publish pose
- uniapp实现小程序预览、保存、转发pdf/word/excel等文件
- “互联网+教育”促进优质资源共享
- html input 删除线,css样式实现字体删除线效果