网站首页 > 开源技术 正文
增删改查业务。
分享一下我平常在写业务代码增删改查时的一种写法。
·首先是来到Controller入口层,在这里面每个接口会去调用对应的service。针对于返回结果一般会有一个就是封装,比如像code、msg、data去封装对应的数据,也就是这种写法。
当然我这里是使用了一种全局封装的处理,也就是拿到返回结果去判断有没有被包裹,如果没被包裹就统一包一层。但在有些时候可能去对接第三方的时候,他们的要求去响应的时候不需要去包这层,或者他们是指定的别的响应格式,那么我这里就会采用去自定义注解去判断有没有注解。
如果加了注解,意思是不被包装就直接返回对应的原始数据,这是针对于返回结果的包装处理。
·然后是关于接口的相关的声明,比如像分类在这里,跟上分类,下面就是page、list,就一系列正常接口。可能有些小伙伴就喜欢在命名后面去加上,比如像pageCategory,这种其实加了没什么必要,显得接口很长,并且本来这里就是声明了比如是分类,其实后面加不加就无所谓了,不加看上去比较简单一点。service方法名是同理,简单一点就没必要去加了。
·然后是参数校验,一般会使用JSR303的参数校验,也就是注解式的参数校验。这种注解式的参数校验可能有时候不太够,这时候怎么办?比如这里有一个相关的类,会实现两个接口,一个是处理参数的接口,还有个是校验参数接口。
在下面有对应的方法,比如检查参数,有些时候是根据某一个指定的字段去进行关联字段的校验,还有时候可能有一字段需要给大家默认值,所以在这里做了一个单独处理数据的方法。在这里面额外的去处理数据。
这个逻辑我会加到哪里?我会加到对应的Controller的AOP里面去实现。比如判断有没有去实现对应的接口,然后去进行相关的检查参数或者处理参数字段,去加默认值等等之类的。
但在上面可能有些接口也可以去拿到对应的,比如像用户信息拿到用户ID、用户名以及包括分页参数,前台统一从请求层里面拿过来之后,再去自己从请求层里面获取到,然后设置到DTO里面去。
回到service里面,比如这里再去调用对应的分页的时候,我会使用mybatisplus的分页插件,在这里按理说也要去设置对应的,比如像到达某一页以及每页显示多少条,当然这里没写,没写也是做了全局的处理,会交到对应mapper的AOP里面。
在这里面会去判断是否属于分页的IPage值,如果是,在这里去设置对应的,比如到某页以及对应的就是每页展示多少条,这些都是从前端的请求头里面去统一获取的。
其次就是在写service代码的时候,最好将功能最小化,抽离一下功能,就不要在service里面去写一扒拉功能,就显得代码很臃肿,并且这样代码看上去也不太好懂,一旦把它抽离出来之后,每一个方法看上去就比较小,这种可读性也比较好。
还有一个是service、mapper的调用,比如这里是分类的SOS,只去调用分类的mapper就不要去调其他mapper。如果想要去调其他crud的功能,通过service去调,也就是封装统一入口,不然就东掉西掉。
比如mapper以后去查哪里用到的add,哪里用到删除,结果通过mapper去掉了,又通过service去掉了,到处都掉了,就无法知道具体到底有多少处去掉了。
ok 以上,便是一个简单的业务crud的说明。你学会了吗?
猜你喜欢
- 2024-09-08 Try catch 太烦人了?只需一步一次搞定 Exception
- 2024-09-08 vue多实体参数怎么传?(vue如何传参)
- 2024-09-08 Mybatis-Plus常用的查询方法——看这一篇就够了!「图文例子」
- 2024-09-08 你这代码写得真丑,满屏的try-catch,全局异常处理不会吗?下
- 2024-09-08 mybatis-plus 团队新作 mybatis-mate 轻松搞定企业级数据处理
- 2024-09-08 「Spring Cloud」新闻头条微服务项目:自媒体文章管理
- 2024-09-08 最快MyBatis-Plus入门使用(mybatis-plus-plus)
- 2024-09-08 再也不用写CURD代码了,Mybatis-plus帮你全搞定
- 2024-09-08 MyBatis-Plus快速入门(一)(mybatis-plus-plus)
- 2024-09-08 Mybatis-Plus 详解(二)(mybatisplus in)
你 发表评论:
欢迎- 07-10公司网站建站选择:人工建站和源码建站分析
- 07-10多用途游戏娱乐新闻网站HTML5模板
- 07-10站长教你搭建属于自己的网站(搭建网站的步骤)
- 07-10php宝塔搭建部署实战响应式塑料封条制品企业网站模板源码
- 07-10自适应响应式汽车配件类网站源码 html5高端大气汽车网站织梦模板
- 07-10网站标签怎么设置?(网站标签怎么设置比较好)
- 07-10PageAdmin企业网站制作中踩过的坑
- 07-10豆包给我输出的html在线象棋源码(有点简单)
- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)