实用的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…

[配置中心] --- consul

mac下载安装consul 1、下载&#xff1a;consul下载地址 2、解压到目录/usr/local/bin下 3、执行consul文件 4、验证&#xff1a;控制台输入consul验证 5、启动consul&#xff1a;consul agent -dev windows安装consul 1、下载&#xff0c;解压到D:\soft&#xff0c;将这个路…

[java基础] --- java开发,service层是不是一定要写接口

估计很多java开发的同学都遇到过&#xff0c;service层要写一个接口&#xff0c;然后再写接口的实现类&#xff0c;但这个接口从项目开始到项目倒闭&#xff0c;都不会有第二个实现&#xff0c;那为什么不直接写个service类呢&#xff1f;如果你还没想过这个问题&#xff0c;那…

浅谈权限(功能权限数据权限)

一般企业上的权限部分&#xff0c;都是区分为功能权限和数据权限。 一、功能权限 功能权限&#xff0c;就是用户登录后&#xff0c;能看到哪些菜单&#xff0c;能看到哪些按钮&#xff0c;能执行哪些操作的权限。 一般&#xff0c;功能权限&#xff0c;已经都有很成熟的业内方…

一个技术负责人应该知道的规范细节

前言&#xff1a; 作为一个技术负责人&#xff0c;不能只定义一个项目的技术选型&#xff0c;而不注意开发细节。 开发前&#xff0c;如果不预先定义好规范&#xff0c;那么项目中就会乱成一锅粥。每个人自成一派&#xff0c;单看每个人的模块&#xff0c;貌似都没啥大问题&am…

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

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

skywalking(2)

安装 1、安装jdk 2、安装es 3、安装skywalking&#xff08;backend和ui&#xff09; 应用启动时添加探针&#xff08;agent&#xff09; 使用 java -javaagent:/aa/bb/boot.jar -Dserver.port8081 -jar boot.jar 启动项目jar包 查看调用链&#xff0c;追踪等 仪表盘&#…

skywalking(3)

javaagent原理 skywalking实现代码无侵入&#xff0c;就是用了javaagent javaagent是java命令的一个参数&#xff0c;可以用于指定一个jar包 这个jar包中的MANIFEST.MF中&#xff0c;必须指定Premain-Class项 Premain-Class指定的那个类&#xff0c;必须实现premain()方法 当…

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是…

jenkins+k8s实现持续集成

持续集成&#xff08;CI&#xff09; 集成是指开发人员将代码提交到git或svn 持续集成是指让开发人员持续提交代码&#xff0c;写一点就提交一点&#xff0c;这样就会更早的发现代码差异 每次集成&#xff0c;都可以通过自动化的构建来验证 自动化构建包括&#xff1a;编译&am…

为什么要用Elasticsearch

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

[设计模式] ------ 建造者模式(对比模板模式)

建造者模式 建造者模式&#xff0c;是为了构建一类具有相同执行顺序的但实现不一样&#xff0c;最后产生不一样的东西的效果。 举个例子&#xff0c;比如写作文。 每次写作文&#xff0c;我们大致有写标题&#xff0c;写开头&#xff0c;写内容&#xff0c;写结尾这些步骤。…

[设计模式] ------ 观察者模式和他的升级版发布订阅模式

概念 观察者模式&#xff0c;原理很简单&#xff0c;把A类的子类分别注入到B类中&#xff0c;通过用B类调用方法&#xff0c;循环调用A类的方法&#xff0c;就是所谓观察者模式 伪代码如下&#xff0c;最快的速度理解观察者模式&#xff1a; 接口 A{// 观察者接口notify(); …

[设计模式] ------ 工厂方法模式

工厂方法模式 手机厂造手机&#xff0c;肥皂厂造肥皂&#xff0c;药品厂造药品。 假设有一大类对象A1,A2,A3,A4…他们都有一个共同的父类A A1可以想成是手机&#xff0c;A2可以想成肥皂… &#xff08;下面例子的A1Factory就是手机厂&#xff0c;A2Factory就是肥皂厂&#x…

[设计模式] ------ 抽象工厂模式

抽象工厂模式 抽象工厂模式&#xff0c;就是对工厂方法模式加以改进而已&#xff0c;其实就是用简单工厂模式的套路创建各个工厂&#xff0c;后面和工厂模式就一模一样了。 其实就是相当于将创建哪个工厂的权利再次放给调用端。 调用端在调用的时候&#xff0c;指定用哪个工厂…

[设计模式] ------ 对比总结:简单工厂模式、工厂方法模式、抽象工厂模式

三个概念&#xff1a; 简单工厂模式&#xff1a;就是一个简单的工厂类&#xff0c;根据不同的入参类型&#xff0c;返回不同的父类引用的子类对象。 工厂方法模式&#xff1a;就是将生成哪个子类对象的过程&#xff0c;延迟到工厂子类实现&#xff0c;工厂父类只定义接口。 抽…

[设计模式] ------ 原型模式(浅拷贝和深拷贝)

原型模式 原型模式就是使用复制对象&#xff0c;创建出新的对象&#xff0c;并且不需要知道创建的细节&#xff08;比如类的属性的赋值等等&#xff09;。 基本使用&#xff08;浅拷贝&#xff09; 常见的就是使用Object的clone方法。需要让类实现Cloneable并重写clone方法&…

机器学习笔记(了解)

1、概念 机器学习&#xff0c;就是通过历史数据找出一定的规律&#xff0c;并使用这些规律对将来不确定的场景进行决策。 机器学习VS数据分析 数据分析&#xff0c;是人为的从历史交易数据中找规律&#xff0c;从而决策。 机器学习&#xff0c;是机器使用算法&#xff0c;从…

机器学习笔记(常见算法)

C4.5 属于决策树算法&#xff0c;既可以解决分类问题&#xff0c;也可以解决回归问题&#xff0c;属于有监督算法。 现在基本不用这个算法了。 K-Means 属于聚类算法&#xff0c;属于无监督算法 SVM&#xff08;*&#xff09; 支持向量机。 曾经一度认为是分类效果最好的算…