基于MybatisGenerator扩展的 Model & Mapper & Service & Controller代码生成器

新鲜出炉的基于数据库

自动生成Mybatis的 Model & Mapper & Service & Controller 等的代码代码生成器,基于Mybatis Generator扩展其JavaMapper和XmlMapper的实现,一个普通业务网站的后端逻辑,点一下鼠标就实现了,项目链接:

https://github.com/fenglibin/CodeGenerator

Java代码生成器

介绍

这是一个基于数据库表

用来自动生成 Model & Mapper & Service & ServiceImpl & Controller 等代码的代码生成器

使用者可以通过修改ftl模板来生成自己所需的基本代码块

主要是为了解决日常工作、练习中代码的重复工作量

目前仅支持 Mybatis 底层代码的生成

注:本项目fork自 https://github.com/zhaohaihao/CodeGenerator
,感谢原作者zhaohaihao。不过我在使用代码的时候发现原项目有很多功能或者使用场景不适合我,因而我在原来项目的基础之上做了大的调整。在原来的基础之上修改点如下: 1、去掉依赖tk.mybatispagehelper的依赖,完全自已实现相关的逻辑,因为我还是觉得mybatis原始的实现方式更适合我; 2、实现自定义的CustomizeJavaMapperGenerator和CustomizeXMLMapperGenerator,可以灵活的定制自已经需要生成的功能; 3、实现了按条件的分页查询,并在Controler层实现统一返回结果; 4、去掉了一些原来需要用户参与的配置和定制,完全按照MybatisGenerator的标准实现,使配置看起来更简洁,代码实现也更简单; 5、增加单元测试的相关的依赖,方便对生成代码的单元测试

目录结构

├── src
│   ├── main
│   │   ├── java   
│   │   │   └── com
│   │   │       ├── codegen 
│   │   │       │   └── vo   // 项目需要的代码
│   │   │       │       ├── Page.java
│   │   │       │       └── Result.java
│   │   │       └── gencode  // 存放生成的代码(该目录中的代码可以删除)
│   │   │           └── generate
│   │   │               ├── persistence
│   │   │               │   ├── mapper
│   │   │               │   │   └── SitesMapper.java
│   │   │               │   └── model
│   │   │               │       └── Sites.java
│   │   │               ├── service
│   │   │               │   └── SitesService.java
│   │   │               └── web
│   │   │                   └── controller
│   │   │                       └── SitesController.java
│   │   └── resources
│   │       └── com          //生成的mapper.xml(该目录中的内容可以删除)
│   │           └── gencode
│   │               └── generate
│   │                   └── persistence
│   │                       └── mapper
│   │                           └── SitesMapper.xml
│   └── test
│       ├── java
│       │   └── com
│       │       └── codegen
│       │           ├── generator  //根据Mybatis实现的代码和xml配置生成器
│       │           │   ├── CountByConditionElementGenerator.java
│       │           │   ├── CountByConditionMethodGenerator.java
│       │           │   ├── CustomizeJavaMapperGenerator.java
│       │           │   ├── CustomizeXMLMapperGenerator.java
│       │           │   ├── DeleteByConditionElementGenerator.java
│       │           │   ├── DeleteByConditionMethodGenerator.java
│       │           │   ├── SelectByPageElementGenerator.java
│       │           │   └── SelectByPageMethodGenerator.java
│       │           ├── main
│       │           │   └── CodeGeneratorMain.java  //代码生成器的主类
│       │           ├── service
│       │           │   ├── CodeGeneratorConfig.java
│       │           │   ├── CodeGenerator.java
│       │           │   ├── CodeGeneratorManager.java
│       │           │   └── impl
│       │           │       ├── ControllerGenerator.java
│       │           │       ├── ModelAndMapperGenerator.java
│       │           │       └── ServiceGenerator.java
│       │           ├── test //单元测试存的目录(该目录可以删除)
│       │           │   ├── BaseTestCase.java
│       │           │   ├── controller
│       │           │   │   └── SitesControllerTest.java
│       │           │   └── mapper
│       │           │       └── SitesMapperTest.java
│       │           └── util //相关工具类的存放目录
│       │               ├── DataUtil.java
│       │               ├── FileUtil.java
│       │               ├── MethodUtil.java
│       │               └── StringUtils.java
│       └── resources
│           ├── config //用于单元测试的配置()
│           │   └── jdbc.properties 
│           ├── generator //controller和service的模板所在目录
│           │   └── template
│           │       ├── controller.ftl
│           │       └── service.ftl
│           ├── generatorConfig.properties  //生成器核心配置文件
│           └── spring //用于单元测试的配置
│               ├── applicationContext-db-normal-context-test.xml
│               └── spring-application-context-test.xml

使用说明

运行

进入到 src/test/java
目录下

找到 CodeGeneratorMain
类 为生成器的启动项

直接  Run As Java Application
运行即可

修改配置

进入到 src/test/resources
目录下

找到  generatorConfig.properties
文件

修改对应的参数即可

具体的注释信息可参考  /src/test/java/com/codegen/service/CodeGeneratorConfig.java

自定义生成器

参考目录src/test/java/com/codegen/generator下面相关的实现

模板样式修改

如果需要生成自己所需的 Controller & Service 样式

进入到  src/test/resources/generator/template
目录下

修改对应的ftl文件即可

数据库表名规则

表名支持单个单词的表名,如”table1“,已经根据下划线分隔的表名如“my_table1”,其它的没有测试。

原文 

https://blog.csdn.net/fenglibing/article/details/83384337

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » 基于MybatisGenerator扩展的 Model & Mapper & Service & Controller代码生成器

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址