关于写“新增接口”的一些理解

背景

最近我开始接触编写增删改查(CRUD)接口。其实,在上篇文章中我已经提到,这些接口都有一个共同点,就是对数据库表进行操作。这些操作包括但不限于:通过某几个字段查询某张表的所有字段、向表中新增一条记录、删除表中的一条记录以及更新某张表中的一条记录。总体来说,来来去去就是这几种操作。

在上篇文章中,我们重点讲解了一般查询接口的编写方法。而在这篇文章中,我们将重点讨论如何编写新增接口。

“新增”接口的思路

新增接口的大致思路如下:首先,你需要传入一条记录作为参数(通常我们称之为form)。接着,在service层将这个form转换成对应的entity。最后,在mapper层编写一条插入记录到某张表的SQL语句。这样,新增接口就完成了。

编写新增接口

首先,我们来编写controller层。在controller层中,需要定义form参数。其实,form参数的编写并不复杂,只需与要插入的表的字段一一对应即可。通常,我不会自己手动编写,而是借助AI来完成。我会将表结构提供给AI,并告诉它,我需要编写一个新增接口,并且需要一个form作为传入参数,请它帮我生成一个form。

我个人觉得这样做效率更高,因为如果我自己编写,可能会很慢,而且容易遗漏或出错。尤其是当表中有30个字段时,你的form参数也需要对应30个字段。如果遗漏了某个字段,数据就无法正确传入。

最终,controller层的代码会是这样的:

在完成controller层的编写后,我们接下来编写service层。对于所有新增接口,最重要的任务就是将form转换成entity。为什么要进行这个转换呢?因为只有entity与数据库中的表是相连接的,所以必须将form转换成entity。

通常情况下,form转换成entity是有一个现成的方法可以直接调用的。接下来就是进行插入操作。起初,我以为需要在mapper层自己写SQL语句,但后来光哥告诉我,这些单表操作通常不需要自己写SQL,通常已经有封装好的方法可以直接调用。例如,新增一条记录可以使用一个insert方法,这个方法会帮助你将记录插入到表中,而不需要自己编写SQL。同样地,删除表中的某行记录可以使用deleteById(id)方法,更新表中的某行记录可以使用updateById(itDeviceInformationEntity)方法。

只要完成form到entity的转换,这个新增接口就基本完成了。最终,service层的代码大致如下:

总结

新增接口的核心思路其实就是将form转换成entity。一般来说,新增接口可以分为简单和复杂两种情况。

对于简单的新增接口,操作相对简单。在service层,只需要将form直接转换成entity即可,不需要额外的处理。

但是,有些新增操作会比较复杂。这种情况下,可能需要进行各种条件判断,如果不满足条件,就无法进行新增操作。此外,还可能需要手动处理某些特殊字段的转换。例如,有些字段是通用参数,在数据库中通常以(0,1,2)这种形式存储,但在新增时,form中的字段可能是对应的中文描述(例如,待报废、报废、未维修、已维修)。因此,需要对这些特殊字段进行转换,这会增加一些复杂性。

猜你喜欢

转载自blog.csdn.net/qq_54432917/article/details/143226180