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

栏目: Java · 发布时间: 6年前

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

新鲜出炉的基于数据库表

自动生成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.mybatis和pagehelper的依赖,完全自已实现相关的逻辑,因为我还是觉得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”,其它的没有测试。


以上所述就是小编给大家介绍的《基于MybatisGenerator扩展的 Model & Mapper & Service & Controller代码生成器》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

The Ruby Programming Language

The Ruby Programming Language

David Flanagan、Yukihiro Matsumoto / O'Reilly Media, Inc. / 2008 / USD 39.99

Ruby has gained some attention through the popular Ruby on Rails web development framework, but the language alone is worthy of more consideration -- a lot more. This book offers a definition explanat......一起来看看 《The Ruby Programming Language》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

URL 编码/解码
URL 编码/解码

URL 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具