能力层书写规范

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了能力层书写规范相关的知识,希望对你有一定的参考价值。


约束

是否写Mapper?

  1. 能用基本的增删改查的用基本的增删改查
  2. 笔记复杂写mapper 文件

delete save update

  1. save 默认返回插入的ID 不需要就和 update和delete 一样返回void
  2. delete update 在service层就返回void 不需要返回

层级之间的传输 insert delete update select

层级与层级之间的传输用DTO 也可以不用

DB – > 前端

  1. DO 能力层在service 的查询结果就是DO 对象
  2. 变换成RespDTO对象的时候需要考虑拷贝问题 过滤掉部分参数
  3. 应用层service API 也可能设计拷贝问题

前端 – > DB

  1. 前端传入参数
  2. 传递到能力层
  1. 如果是insert 在service 对参数进行封装DTO 加上一些属性 比如更新人 更新时间
  2. 如果是delete 可直接使用已有的方法进行删除
  3. 如果是 select 一般需要参数 偶尔需要分页
  4. 如果是update 一般也需要删除

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1T3XutEY-1636698953557)(C:\\Users\\yantingrui\\Pictures\\markdown\\099c9c4985eb4f71ab6a1e4ffa4ffc72.png)]

Mapper xml书写注意

  1. select 检索 查询条件先要判断是否为空
<if test="query.trackWayId != null">
AND track_way_id = #query.trackWayId
</if>
  1. 包含代码
<include refid="Base_Column_List"/>
  1. foreach
<if test="query.ids != null and query.ids.size() > 0">
AND a.id in
<foreach item="id" collection="query.ids" open="(" close=")" separator=",">
#id
</foreach>
</if>
  1. 拼接
AND d.company_name like concat(%,#query.companyName,%)

mapper

mapper 案例

@Mapper
public interface TrackMapper extends BaseMapper<TrackDO>

List<TrackDO> selectListByDTO(IPage page, @Param("query") TrackQueryDTO query);

List<Long> listUnkeyByImportance( @Param("type") Integer type, @Param("importance") Integer importance);

能力层的返回

delete 直接是一个结果 void Result.ok();

update 也是直接返回一个结果 void Result.ok();

insert 也是返回一个结果 void Result.ok();

mybatiesPlus 是boolean 类型

插入删除更新mapper 都用int 承接 https://blog.csdn.net/weixin_39654465/article/details/111200993

service 层

  1. 参考代码在层级之间相互调用
  2. sql 学习
  1. 匿名查询 lambdaQuery().eq(ProductListDO::getClueId, clueId).list();
  1. wrapper 查询条件
  2. 缺少from字段

controller 层

不需要操作什么 直接返回

@GetMapping("/v1/scrm/config/all")

API 模块

复制 controller 层接口也不需要做什么


以上是关于能力层书写规范的主要内容,如果未能解决你的问题,请参考以下文章

web前端开发规范项目流程总结

java编程命名规范

Java学习:编码规范

bug标准及书写规范

编程规范之书写规范

PHP书写规范