阅读 955

RuoYi-Vue 前后端分离版代码浅析-代码生成模块(一)

前言

本节介绍RuoYi-Vue的代码生成模块是如何进行配置生成代码的,它的可视化代码编辑模式对于开发者而言可以很好的解决重复代码编写问题,只需一键就可以将大部分的重复代码都生成出来,开发者可以将自己的注意力完全放在业务逻辑的编写上,解决掉无聊的增删改查。

ruoyi-generator

在ruoyi的代码中,生成代码的模块代码很多,

image.png 有配置,Controller,实体类,mapper,service,util和对应的模板(controller.java.vm),实际上就是一个小的项目了

GenConfig

本类直接使用了@ConfigurationProperties来帮助将对应的配置的yml属性填充到该类中。

@ConfigurationProperties(prefix = "gen") @PropertySource(value = { "classpath:generator.yml" }) 复制代码

image.png

image.png 两者一一对应

代码生成列表接口

image.png

这个接口用来展示gen_table表中的数据

image.png

这个对应的sql如下

<where>    <if test="tableName != null and tableName != ''">       AND lower(table_name) like lower(concat('%', #{tableName}, '%'))    </if>    <if test="tableComment != null and tableComment != ''">       AND lower(table_comment) like lower(concat('%', #{tableComment}, '%'))    </if>    <if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->       AND date_format(create_time,'%y%m%d') &gt;= date_format(#{params.beginTime},'%y%m%d')    </if>    <if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 -->       AND date_format(create_time,'%y%m%d') &lt;= date_format(#{params.endTime},'%y%m%d')    </if> </where> 复制代码

通过lower函数将输入的和表的名称都变为小写,我们平时很少这么写是因为我们一般都是针对中文进行检索,所以不需要小写化,而这里是对表名进行模糊检索,表名基本都是英文,所以我们需要变为小写来做模糊搜索。

而这里的params.beginTime是通过BaseEntity中的

/** 请求参数 */ private Map<String, Object> params; 复制代码

来直接获得的 前台每次添加日期范围都直接向这个Param参数中添加,因此我们就不用每个实体类中都添加这些搜索参数了,实际上带来了一些隐患,因为没有办法验证它们的正确与否,没有办法一开始就检测到错误参数,不过是省了一部分开发精力。

image.png


作者:临时营地
链接:https://juejin.cn/post/7031152295203045383

文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐