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

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

1、引入maven

		<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.0.6</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus</artifactId><version>3.0.6</version></dependency><!-- MySql --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><!-- velocity 模板引擎 --><dependency><groupId>org.apache.velocity</groupId><artifactId>velocity-engine-core</artifactId><version>2.0</version></dependency><!-- swagger --><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.8.0</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.8.0</version></dependency>

2、编写CodeGenerator类,执行main方法

我希望配置一个com.parent.module的模块,本地数据库名字是aa,得事先建好,表名是product

public class CodeGenerator {public static void main(String[] args) {// 1、创建代码生成器AutoGenerator mpg = new AutoGenerator();// 2、全局配置GlobalConfig gc = new GlobalConfig();String projectPath = System.getProperty("user.dir");gc.setOutputDir(projectPath + "/src/main/java");gc.setAuthor("zs");  // 开发人员gc.setOpen(false);  // 生成后是否打开资源管理器gc.setFileOverride(false);  // 重新生成时文件是否覆盖gc.setServiceName("%sService"); // 去掉Service接口的首字母Igc.setIdType(IdType.ID_WORKER_STR); // 主键策略gc.setDateType(DateType.ONLY_DATE);// 定义生成的实体类中日期类型gc.setSwagger2(true); // 开启Swagger2模式mpg.setGlobalConfig(gc);// 3、数据源配置DataSourceConfig dsc = new DataSourceConfig();dsc.setUrl("jdbc:mysql://localhost:3306/aa?serverTimezone=GMT%2B8"); // 驱动连接的urldsc.setDriverName("com.mysql.cj.jdbc.Driver"); // 驱动名称dsc.setUsername("root"); // 用户名dsc.setPassword("root"); // 密码dsc.setDbType(DbType.MYSQL);mpg.setDataSource(dsc);// 4、包配置PackageConfig pc = new PackageConfig();pc.setModuleName("moduleName"); // 模块名pc.setParent("com.parent");pc.setController("controller");pc.setEntity("entity");pc.setService("service");pc.setMapper("mapper");mpg.setPackageInfo(pc);// 5、策略配置StrategyConfig strategy = new StrategyConfig();strategy.setInclude("product"); // 表名称strategy.setNaming(NamingStrategy.underline_to_camel);// 数据库表映射到实体的命名策略strategy.setTablePrefix(pc.getModuleName() + "_"); // 生成实体时去掉表前缀strategy.setColumnNaming(NamingStrategy.underline_to_camel);// 数据库表字段映射到实体的命名策略strategy.setEntityLombokModel(true); // lombok 模型 @Accessors(chain = true) setter链式操作strategy.setRestControllerStyle(true); // restful api风格控制器strategy.setControllerMappingHyphenStyle(true); // url中驼峰转连字符mpg.setStrategy(strategy);// 6、执行mpg.execute();}
}

3、最终执行效果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/499778.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mac/windows 端口占用解决记录

idea启动报错&#xff1a;端口占用 The port may already be in use or the connector may be misconfigured mac端口占用解决 zhangshuaideMacBook-Pro:~ zhangshuai$ lsof -i:8095 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME Google 375 zhangshuai 32u IPv6 0x…

skywalking(1) 基于opentracing规范的APM系统

skywalking是&#xff1a; 基于opentracing规范的APM系统 skywalking解决了什么问题&#xff1f; skywalking解决微服务架构下&#xff0c;多服务直接复杂的调用关系 了解dapper&#xff0c;分布式链路追踪系统 dapper又是谷歌论文&#xff0c;各公司又相继模仿。&#xff…

skywalking(4)

Byte Buddy库 统计方法调用时长 1、增强字节码 2、拦截器拦截 类似于spring的aop&#xff0c;只不过skywalking不能用aop&#xff0c;所以用Byte Buddy技术代替 Open Trace 整个trace调用&#xff0c;是由多个span组成的有向无环图&#xff08;就是调用关系图&#xff09;。…

kubernetes(k8s)

应用部署演进过程 我们从上图可以看到&#xff0c;应用越来越看重应用本身了&#xff0c;慢慢的不受物理机的差异&#xff0c;不受操作系统的差异&#xff0c;开发者可以花更多精力去到应用本身。 k8s概念 简单理解&#xff0c;k8s就是传统的云平台上的linux。 kubernetes是…

为什么要用Elasticsearch

概念 Elasticsearch 简称ES&#xff0c;是一个分布式全文检索引擎。 比如github的代码检索就是用了ES&#xff0c;百度也有用ES。 由于Lucene的api相对比较复杂&#xff0c;所以ES其实是对Lucene的封装简化&#xff0c;并且提供了一套比较简单的api文档。 es官网 使用场景 主…

赶紧看一下mysql8.0版本的新特性,你的数据库是不是该升级了

这里写目录标题前言mysql8.0的新特性1、账户安全2、优化器索引2.1、隐藏索引&#xff08;invisible&#xff09;2.2、降序索引2.3、函数索引3、SQL语句增强4、新增数据分析函数5、InnoDB增强5.1、优化了一些元数据文件5.2、将系统表mysql和数据字典表&#xff0c;全部改为InnoD…

ThreadLocal不仅要应付面试,更要真的理解,真的会用

前言 记得我几年前第一次面试的时候&#xff0c;就是被问了这个&#xff0c;记得面试官直接就让我说说ThreadLocal的实现原理以及平时有没有见过哪些地方用到了。 我当时初入职场&#xff0c;还是一个大菜鸟&#xff0c;所以直接就被干蒙了&#xff0c;至今还记忆犹新。 闲来…

Base64编码的原理与常用实现

这篇主要是为了后面好介绍加密算法&#xff0c;做的铺垫。 这个是基础&#xff0c;什么是一个程序员的涵养&#xff0c;这些基础就是涵养。 平时可能用不到&#xff0c;但必须得会。 如果连这个原理都说不上来&#xff0c;就别玩王者荣耀绝地求生英雄联盟和平精英了&#xff0c…

MD5算法原理与常用实现

目录定义MD5特点常见应用场景1、校验文件的完整性2、存储用户密码原理1、填补信息2、拿到初始值3、真正的计算MD5为什么不可逆java实现和使用定义 MD全称Message-Digest&#xff0c;即信息摘要&#xff0c;所以MD家族的算法也叫信息摘要算法 MD家族有MD2、MD3、MD4、MD5&#…

SHA算法原理与常用实现

看本文前&#xff0c;最好先看看之前的这一篇关于MD5算法的介绍。 MD5算法原理与常用实现 本文目录定义MD5和SHA-1的碰撞问题常见应用场景1、类似MD5的应用场景2、比特币3、https签名算法会用到SHA-256算法原理1、填补信息2、拿到初始值3、真正的计算java实现和使用定义 SHA算…

MAC算法原理与常用实现

看本文前&#xff0c;最好先看看之前的对于MD5算法和SHA算法的介绍。 本文目录定义常见应用场景1、linux客户端&#xff1a;SecureCRT2、Google身份验证器3、银联pos机终端原理java实现和使用定义 MAC&#xff08;Message Authentication Codes&#xff09;&#xff0c;是一种…

面试 HTTP ,99% 的面试官都爱问这些问题

HTTP 和 HTTPS 的区别HTTP 是一种 超文本传输协议(Hypertext Transfer Protocol)&#xff0c;HTTP 是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范HTTP 主要内容分为三部分&#xff0c;超文本&#xff08;Hypertext&#xff09;、传输…

@JsonFormat失效解决

先说结论 JsonFormat失效&#xff0c;换成JSONField就好了 问题经过和原理 JsonFormat作为Date类型的属性值&#xff0c;返回前端格式化处理&#xff0c;很方便。 比如&#xff1a; JsonFormat(pattern "yyyy/MM/dd HH:mm:ss")private Date updateTime;返回给前端…

如何在摆摊经济中脱颖而出

最近&#xff0c;摆摊经济开始火了起来&#xff0c;于是各路诸侯纷纷举起大旗开始摆摊。我周围也不乏有亲朋好友蠢蠢欲动&#xff0c;有的甚至已经初有规模。但这波摆摊风是否真的可行&#xff0c;对谁可行&#xff0c;有哪些风口&#xff0c;有哪些坑&#xff0c;我们慢慢分析…

java 实现 生成短链接服务

java实现短链接转换服务 类似上图这种短信&#xff0c;对应的就是一个短链接。 看到原理也不难&#xff0c;于是先写个最简易版的玩玩&#xff0c;以后有需求了再补充吧 下面是一个简易版的短链接生成代码 搭个spring-boot服务&#xff0c;复制这两个controller&#xff0c;就…

[转载] --- Fastjson1.2.68版及以下全版本远程代码执行漏洞通告

再这样&#xff0c;真的要放弃fastjson了 【安全通告】Fastjson <1.2.68全版本远程代码执行漏洞通告 尊敬的腾讯云用户&#xff0c;您好&#xff01;近日&#xff0c;腾讯云安全运营中心监测到&#xff0c;Fastjson <1.2.68版本存在远程代码执行漏洞&#xff0c;漏洞被利…

数据库选型经验汇总

数据库选型 下面这些都是免费开源的。 暂且不考虑数据量&#xff0c;大致的选型方案。 一般分析型数据库&#xff0c;都是可以支持GB到TB级别。 上面的分类都不是一定的&#xff0c;只是大体上的推荐。具体还得结合实际场景调整。 数据处理大致可以分成两大类&#xff1a; 联…

RabbitMQ和Kafka选型用哪个

作为一个有丰富经验的微服务系统架构师&#xff0c;经常有人问我&#xff0c;“应该选择RabbitMQ还是Kafka&#xff1f;” 基于某些原因&#xff0c; 许多开发者会把这两种技术当做等价的来看待。的确&#xff0c;在一些案例场景下选择RabbitMQ还是Kafka没什么差别&#xff0c…

【FPGA】分享一些FPGA视频图像处理相关的书籍

在做FPGA工程师的这些年&#xff0c;买过好多书&#xff0c;也看过好多书&#xff0c;分享一下。 后续会慢慢的补充书评。 【FPGA】分享一些FPGA入门学习的书籍【FPGA】分享一些FPGA协同MATLAB开发的书籍 【FPGA】分享一些FPGA视频图像处理相关的书籍 【FPGA】分享一些FPGA高速…

错误记录:Current request is not a multipart request

springboot 报错&#xff1a;Current request is not a multipart request 这个一般是controller是带有上传文件的服务&#xff0c;类似RequestParam MultipartFile[] file 解决&#xff1a; 首先检查请求头中的Content-Type是否设置对&#xff0c;如果把Content-Type设置成a…