Spring Cloud_2.MyBatis-Plus代码自动生成

作者: 小疯子 分类: mybatis,Spring Cloud 发布时间: 2019-11-23 09:11

介绍说明

Mybatis属于半自动ORM,在使用这个框架中,工作量最大的就是书写Mapping的映射文件,由于手动书写很容易出错,我们可以利用Mybatis-Generator来帮我们自动生成文件。

代码实现

一、根路径pom.xml配置

项目根目录下的pom.xml中定义mybatis和mybatis-plus的版本依赖

二、数据存储层

要将mybatis-plus自动代码生成的mapper、实体等类存放到规划好的数据存储层模块,因为这个模块是设计的和数据库打交道的,所以先搭建一个数据存储层模块:manage-data-storage
结构一个是manage-data-storage-configuration针对数据存储层的相关配置,一个是我们用于和数据库相关的manage-data-storage-user模块

(1) manage-data-storage

其下的pom.xml配置除了packaing\modules基本信息,再在<dependencyManagement>中增加针对manage-data-storage-configuration的依赖版本声明,给manage-data-storage-user引入configuration做准备

(2)manage-data-storage-configuration

其下的pom.xml中配置数据库连接、mybatis、DataSource等依赖<dependencies>

(3) manage-data-storage-user

在它的pom.xml中引入<dependencies>针对manage-data-storage-configuration的依赖,这样关于数据库和mybatis等基本配置依赖就都有了;

三、代码生成层

创建子模块manage-mybatisplus-code-generator,其中进行代码生成的实现,使其自动生成mapper、User、service等类。

(1)manage-mybatisplus-code-generator

其名下的pom.xml增加<dependencies>相关依赖,主要就是加manage-data-storage-configuration,因为这里面配置了mybatis-plus以及数据库连接等相关信息。
代码结构:

AutoGeneratorCaller:自动生成代码的调用类,主启动类调用此类
FengManageAutoGenerator:自定义继承于AutoGenerator的代码生成器
modules文件夹:包含针对模块信息、模块模板、模块与模板绑定等操作的类

  • 1.IModuleInfo:模块信息接口,比如server-user模块的信息:包含它的父模块,名称,模块前缀,包名,路径等信息
  • 2.BaseModuleInfo:针对上面接口的模块信息实现
  • 3.ModuleInfoEnum: 模块信息枚举,比如SERVER_USER(针对service的)、DATA_STORAGE_USER(针对dao层的数据存储模块)
  • 4.ModuleInfoTemplateTypeEnum: 针对controller、server等层生成所使用的的mybatisplus提供的模板设置
  • 5.IModuleBind: 将模块和上面所说的模板进行绑定

items文件夹:

  • 1.IItem:条目接口——针对order、user等某个条目模块(囊括了server-user\user-data-storage等针对user的所有待生成的部分)获取设置相关联
    的controller、service、entity等基本模块
  • 2.BaseItem:针对上面接口的实现,进行模块的各种条目生成和获取
  • 3.ItemEnum:条目枚举(为user、order等条目配置对应的模块信息以及模块的模板绑定信息)
    (条目指的就是user、order,模块是条目的子部分,比如user条目的模块有server_user,data_storage_user,这里条目是和ModuleBind关联的,也就是除了子模块还有其对应的controller、service等生成模板)

(2)代码执行

在上面的代码中执行其启动CodeGenerator类生成对应的代码类User、UserController、UserService等;

(3)依赖引入

因为server层需要使用storage层的User信息,所以在assist-server和其下的user-server的pom.xml中引入manage-data-storage-user依赖
git代码路径:https://github.com/shuishuiafeng/feng-manage
备用:https://github.com/shuishuiafeng/shop

0