【Java】从入门到放弃-09:低代码开发 JeecgBoot 生成代码分析

1、生成代码结构

在这里插入图片描述
以 MVC 结构来分析;

  • Model(模型)负责数据管理和业务逻辑处理,对应 entity、mapper、service
    • entity(实体类):定义数据结构,和数据库表对应
    • mapper(数据访问):实现数据的增、删、改、查
    • service (业务逻辑层)调用 mapper获取 / 存储数据,处理完业务后将结果传递给 Controller
  • View(视图)负责数据展示,对应前端代码如 vue3 目录
  • Controller(控制器)对应controller目录,负责接收前端(View 层)的请求(如用户操作、数据提交),解析参数,调用 Model 层的业务逻辑(service ),最终将处理结果返回给前端(View)

2、entity(实体类)

使用 package 定义包,在类文件的最上面定义

package org.jeecg.modules.demo.laoer.entity;

2.1 注解

主流框架(Spring、MyBatis、Lombok 等)定义了大量注解,用于简化开发,使用时只需按框架规则添加即可

1)Lombok 注解:简化代码的 “语法糖” 工具

  • @Data:用于简化实体类的编写,自动为类生成 getter、setter、toString、equals、hashCode 和无参构造等方法,无需手动编写
  • @Accessors(chain = true):启用链式调用风格的 setter 方法,设置 chain = true 后,可以通过 对象.setXxx().setYyy() 的方式连续调用 setter 方法
  • @EqualsAndHashCode(callSuper = false):生成 equals 和 hashCode 方法,设置 callSuper = false 表示生成的方法不会调用父类的同名方法

2)Swagger 3 (OpenAPI) 注解:OpenAPI 规范的 API 文档生成工具,能自动扫描项目中的接口信息,生成交互式 API 文档(网页形式),支持接口调试、参数说明、返回值展示等,解决前后端接口对接的沟通成本问题。

  • @Schema(description=“laoer”):
    作用:为实体类添加 API 文档描述

3)MyBatis-Plus注解:简化数据库操作

  • @TableName(“laoer”):指定当前实体类对应的数据库表名
  • @TableId(type = IdType.ASSIGN_ID):用于标识实体类中的主键字段

4)JsonFormat 注解:Jackson 库提供的注解,用于控制 Java 对象与 JSON 字符串之间转换时的格式(如日期、数字、枚举等)

  • @JsonFormat(timezone = “GMT+8”,pattern = “yyyy-MM-dd HH:mm:ss”):用于设置日期时间类型字段的JSON序列化格式

5)Spring 企业级 Java 开发核心框架注解

  • @DateTimeFormat(pattern=“yyyy-MM-dd HH:mm:ss”):用于设置日期时间类型字段的字符串反序列化格式
    当从前端接收日期时间字符串时,会按照指定格式解析为Date对象

6)JeecgBoot框架中的POI导出工具

  • @Excel(name = “劳尔”, width = 15):用于设置Excel导出时该字段的列名和宽度

2.2 字段

entity 中的变量 对应 数据库中的字段

private java.lang.String id;
private java.lang.String createBy;
private java.util.Date createTime;
private java.lang.String updateBy;
private java.util.Date updateTime;
private java.lang.String sysOrgCode;
private java.lang.String laoer;

3、mapper

mapper 很简单使用继承自 泛型接口 BaseMapper<T>,并没有增加新的接口

public interface LaoerMapper extends BaseMapper<Laoer> {}

BaseMapper接口实现对数据库的基本操作,例如:deleteById、updateById、selectById、insert 等

4、service

service 只是简单的继承了 mybatisplus 的接口 IService 和 ServiceImpl

public interface ILaoerService extends IService<Laoer> {}
public class LaoerServiceImpl extends ServiceImpl<LaoerMapper, Laoer> implements ILaoerService {}

5、controller

负责接收前端(View 层)的请求

1)常用的注解

  • @Tag(name=“laoer”): API 文档的分类和说明。
    给当前 Controller 中的所有接口添加一个标签(名称为laoer),在自动生成的 API 文档(如 Swagger UI)中,该 Controller 的所有接口会被归类到laoer标签下,方便前端开发者或测试人员快速定位和理解接口用途。

  • @RestController:Spring MVC 框架的核心注解。
    声明当前类是一个REST 风格的控制器,等价于@Controller + @ResponseBody的组合:

  • @Controller:标记该类为 Spring MVC 的控制器,负责接收和处理 HTTP 请求。

  • @ResponseBody:自动将控制器方法的返回值转换为 JSON(或其他指定格式)响应体,无需额外配置视图解析器,适合前后端分离场景(直接返回数据给前端)。

  • @RequestMapping(“/laoer/laoer”) Spring MVC 框架的请求映射注解。定义当前 Controller 处理的基础请求路径。
    例如:如果该类中有一个方法添加了

    • @GetMapping(“/list”),则该方法的完整访问路径为:/laoer/laoer/list;
    • @PostMapping(“/add”),则完整路径为/laoer/laoer/add。
  • @Slf4j:Lombok 工具类库的注解。
    自动为当前类生成一个log日志对象(基于 SLF4J 规范),无需手动编写private static final Logger log = LoggerFactory.getLogger(当前类名.class);。
    生成后可以直接在类中使用log.info(“操作日志”)、log.error(“错误日志”)等方法打印日志,简化日志代码的编写。

  • @Operation(summary=“laoer-分页列表查询”):用于 API 文档生成

  • @GetMapping(value = “/list”):Spring MVC 框架的请求映射注解

  • @AutoLog(value = “laoer-添加”)JeecgBoot 框架自定义的日志注解(基于 AOP 实现)

  • @RequiresPermissions(“laoer:laoer:add”):JeecgBoot 集成的权限控制注解(基于 Shiro 或 Spring Security)指定访问该接口需要的权限标识(laoer:laoer:add)。若用户未拥有该权限,请求会被拦截并返回 403 错误。

  • @PostMapping(value = “/add”):Spring MVC 注解,指定该方法处理POST 请求,路径为/add,用于新增资源(如添加一条记录),符合 RESTful 规范

  • @RequestMapping(value = “/edit”, method = {RequestMethod.PUT, RequestMethod.POST}):指定该方法处理/edit路径的PUT 或 POST 请求,通常用于更新资源

  • @DeleteMapping(value = “/delete”):处理/delete路径的DELETE 请求,用于删除单个资源

  • @GetMapping(value = “/queryById”):处理/queryById路径的 GET 请求,用于根据 ID 查询单个资源(如查询一条记录的详情)

  • @DeleteMapping(value = “/deleteBatch”):处理/deleteBatch路径的 DELETE 请求,用于批量删除资源(如删除多条记录)

2)方法

  • queryPageList:分页列表查询
  • add:添加一行
  • edit:编辑
  • delete:通过ID删除一行
  • deleteBatch:批量删除
  • queryById:通过id查询
  • exportXls:导出 Excel 表
  • importExcel:导入 Excel 表
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郭老二

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值