Java代码生成

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: Java代码生成

      在很多开源的后台管理系统当中都有代码生成的工具,帮助开发者完成通用代码的生成,比如生成 Controller、Service、Dao 和 XML 文件等,能够帮助开发者生成通用的CRUD 代码。还能帮助开发者生成统一的后台列表页面和表单页面,以方便开发者可以快速的完成自己业务的开发,而忽略那些重复而又繁琐的工作。其实在开发框架中也有一些简单的代码生成的工具,比如接下来要介绍的 mybatis-plus 提供的代码生成。


MyBatis-Plus 代码生成器的介绍

       引用 MyBatis-Plus 官网的说明,如下:

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

https://mp.baomidou.com/guide/generator.html#使用教程


引入依赖

      MyBatis-Plus 官网有较为详细的说明,不过对于刚开始接触的话完全可以通过拿来现成的代码使用。

       使用 SpringBoot 来测试一下 Mybatis-Plus 代码生成的功能。


       SpringBoot 项目中使用代码生成器需要引入一些依赖,依赖如下:

<!-- MySql --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><!-- Lombok --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><!-- MyBatis-Plus --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.0.5</version></dependency><!-- 模板引擎 --><dependency><groupId>org.apache.velocity</groupId><artifactId>velocity-engine-core</artifactId><version>2.0</version></dependency><!-- Mybatis-Plus-Generator --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.4.1</version></dependency>


生成代码

       引入上面的依赖以后,下面的代码其实进行简单的修改就可以完成自己的代码生成,非常的方便。

publicclassCodeGenerator {
publicstaticvoidmain(String[] args) {
// 构建一个代码生成对象AutoGeneratormpg=newAutoGenerator();
// 1. 全局配置GlobalConfiggc=newGlobalConfig();
Stringseparator=File.separator;
gc.setOutputDir("/Users/xxx/Documents/demo/src/main/java");
gc.setAuthor("码农UP2U");
gc.setOpen(false);//打开目录gc.setFileOverride(true);//是否覆盖gc.setServiceName("%sService");//去Service的I前缀。gc.setIdType(IdType.ID_WORKER);
gc.setDateType(DateType.ONLY_DATE);
gc.setSwagger2(false);
mpg.setGlobalConfig(gc);
DataSourceConfigdsc=newDataSourceConfig();
dsc.setUrl("jdbc:mysql://ip:port/data?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai");
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setUsername("root");
dsc.setPassword("password");
dsc.setDbType(DbType.MYSQL);
mpg.setDataSource(dsc);
// 包设置PackageConfigpc=newPackageConfig();
pc.setParent("com.example.demo");
pc.setEntity("entity");
pc.setMapper("mapper");
pc.setController("controller");
mpg.setPackageInfo(pc);
// 策略配置StrategyConfigstrategy=newStrategyConfig();
strategy.setInclude("ums_member");//表名strategy.setNaming(NamingStrategy.underline_to_camel);// 下划线转他驼峰strategy.setColumnNaming(NamingStrategy.underline_to_camel);// 列 下划线转脱发strategy.setEntityLombokModel(true);//lombok 开启strategy.setLogicDeleteFieldName("deleted");
// 自动填充TableFillgmtCreate=newTableFill("gmt_create", FieldFill.INSERT);
TableFillgmtModify=newTableFill("gmt_modified", FieldFill.INSERT_UPDATE);
ArrayList<TableFill>tableFills=newArrayList<>();
tableFills.add(gmtCreate);
tableFills.add(gmtModify);
strategy.setTableFillList(tableFills);
// restcontrollerstrategy.setRestControllerStyle(true);
strategy.setControllerMappingHyphenStyle(true);// localhost:xxx/hello_2mpg.setStrategy(strategy);
mpg.execute();
    }
}


       上面的代码中,设置生成文件的路径,设置数据库的连接,设置包名,设置表相关的内容等。代码简单的易懂,就不做过多说明。


生成结果

       运行上面的代码,来看一下生成的内容,如下图:

11111.jpg

      从图中可以看出,生成的内容有 controller、entity、dao 和 service。基本上省去了我们一些手动需要完成的工作,还是比较方便的。代码有一些部分是通用的,一部分是可能是自定义的,可以将整个代码进行封装,使得使用更加的方便的。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
Java Go 开发工具
MacOS Java+golang build protoc gRPC 代码生成
MACOS Java+golang GRPC 代码生成 下载protobuf git clone https://github.com/protocolbuffers/protobuf.git git checkout 3.
4284 0
|
前端开发 Java Maven
Java代码生成二维码
Java代码生成二维码
181 0
|
JSON JavaScript Java
自己开发java代码生成工具
自己开发java代码生成工具
141 0
自己开发java代码生成工具
|
XML 数据库 数据格式
Java--SpringBoot-43-Mybatis-11-MybatisPlus Generator代码生成器
MybatisPlus也提供了代码生成器,并且更加厉害,能直接生成controller、service、mapper、xml等,并且还支持各种配置。
224 0
Java--SpringBoot-43-Mybatis-11-MybatisPlus Generator代码生成器
Java:MyBatis-Plus-AutoGenerator代码生成器
Java:MyBatis-Plus-AutoGenerator代码生成器
128 0
|
数据可视化 Java API
GUI 的 JavaWeb 鸡肋代码生成器 确定不了解了解?
GUI 的 JavaWeb 鸡肋代码生成器 确定不了解了解?
227 0
GUI 的 JavaWeb 鸡肋代码生成器 确定不了解了解?
|
SQL Oracle Java
java 代码生成器设计方案
java 代码生成器设计方案
224 0
java 代码生成器设计方案
|
前端开发 Java 关系型数据库
企业级java代码生成器 MagicalCoder
摘要:我希望的代码生成器应该具备以下几点 1 高定制化,生成什么样的增删改查应该可控 2 支持各类数据库:主流数据库比如mysql oracle sqlserver postgresql要应该支持 3 最好能提供一个脚手架,一键生成,开箱即用 4 能够自定义模板,提供非常优秀.
6390 0
|
Java 数据库连接 Apache
JavaWeb界面在线配置代码生成器
关于直接main方法运行生成代码可参考我的这篇文章:MP实战系列(六)之代码生成器讲解 在线配置主要参考jeesite和jeecg,gun等开源项目,但是与它们相比又有很多不同? 与jeesite相比,jeesite采用的自己重新改装的MyBatis和使用freemarker模板进行在线代码配置生成;与jeecg相比,jeecg的持久层叫minidao,该dao按照其官方文档所说,即具有Hibernate的全自动性,又兼有MyBatis的灵活性。
2548 0
|
Web App开发 Java
JAVA实现编写平台代码生成器
[项目中经常写CRUD,但实际这些工作,我觉得如果有一个完整的代码规范,完全可以自动生成,加快开发效率. 代码生成器技术原理不复杂,一般就是写好一个模板生成一系列的代码而已。
1198 0