首页 > 其他分享 >能力层书写规范

能力层书写规范

时间:2022-11-16 10:33:57浏览次数:35  
标签:返回 service 书写 void update 能力 规范 query delete


约束

是否写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 层接口也不需要做什么


标签:返回,service,书写,void,update,能力,规范,query,delete
From: https://blog.51cto.com/u_15704977/5855048

相关文章

  • 如何正确遵守 Python 代码规范
    前言无规矩不成方圆,代码亦是如此,本篇文章将会介绍一些自己做项目时遵守的较为常用的Python代码规范。命名大小写模块名写法:module_name包名写法:package_nam......
  • C#编码规范
    为什么要规范编码?方便维护、便于阅读和理解代码。注释所有的方法和函数都应该在前面添加注释,表明方法用来干什么。当参数的功能不明显时、过程希望参数在......
  • APICloud AVM 组件开发规范
    一、AVM组件介绍AVM (Application-View-Model)跨端框架是一个移动优先的高性能跨端JavaScript框架,支持一次编写多端渲染。它提供更趋近于原生的编程体验,通过简洁......
  • 浅谈 element-ui 中 css 的部分代码规范
    简介css作为前端开发的重要一环,其代码量随着项目规模的增加,也是越发复杂;而且,由于css并不属于传统意义上的“编程语言”,其组织形式与编程语言也会有所区别。若只是用......
  • javaScript书写位置
    1.内部javaScript   直接写在html文件里,用script标签包住  规范:script标签写在</body>上面2.外部js:代码写在以.js结尾的文件里语法:通过scr......
  • C++软件编码规范推荐--Qt相关
    1背景  Qt开发常用于跨平台开发的首选,所以关于Qt开发的编码规范也很重要。2QWidget  【规范】信号命名:sgl+驼峰命名规则,如:sglUpdate();  【规范】槽函数:on+驼峰......
  • Spark基础能力自测题
    持之以恒,贵在坚持,每天进步一点点!前言就来分享一位粉丝提供的关于Spark的入门测试练习,希望大家看完有所收获!        首先让我们准备好该题所需的数据test.txt  ......
  • C++软件编码规范推荐--命名规则
    1.背景  命名规则对于代码开发和理解很重要,是作为一名合格的设计师具备的良好代码习惯。2.命名规则2.1匈牙利命名法  基本原则:变量名=属性+类型+对象描述......
  • C++软件编码规范推荐--程序的版式
    1.背景  版式虽然不会影响程序的功能,但会影响程序的可读性;追求清晰、直观;2.规范2.1空行  空行起分隔程序段落的作用。合理的空行使布局更清晰,也不会浪费内存; ......
  • AR Engine光照估计能力,让虚拟物体在现实世界更具真实感
    AR是一项现实增强技术,即在视觉层面上实现虚拟物体和现实世界的深度融合,打造沉浸式AR交互体验。而想要增强虚拟物体与现实世界的融合效果,光照估计则是关键能力之一。人们所......