网站建设发布ps科技感,dede的网站地图,中国八大设计院指的是哪些,广州网站优化外包目录 一#xff1a;背景介绍
二#xff1a;思路方案
三#xff1a;过程 1.Controller层接口的复用
2.Mapper层sql语句的复用
四#xff1a;总结 一#xff1a;背景介绍 我们在开发项目的过程中非常容易出现的一种现象就是用什么我就直接写什么#xff0c;就像我…目录 一背景介绍
二思路方案
三过程 1.Controller层接口的复用
2.Mapper层sql语句的复用
四总结 一背景介绍 我们在开发项目的过程中非常容易出现的一种现象就是用什么我就直接写什么就像我们从数据库读或者存数据一样。我们想要什么数据就从数据库中获取什么样的数据。没有考虑是否浪费了资源的开销。代码是不是复用的问题。 以上两个图都是没有体现复用思想的例子。两个类似的业务场景写了两个接口、两个接口、两个实现类、两个sql下面我们将上面的代码进行改造。
二思路方案 两个接口都是都是实现查询在线人员的情况区别在去两个接口的入参不同。这里我们可以通过使用mybatis的动态SQL进行实现。
三过程 1.Controller层接口的复用
Controller层 /** description:查询课程内容* author: 武梓龙* date: 2023/3/7 16:00* param: [courseContent]* return: java.util.Listcom.wangwei.mvc.entity.CourseContentEntity**/PostMapping(/queryCourseContent)public ListCourseContentEntity queryCourseContent(RequestBody CourseContentEntity courseContent){return iCourseContentService.queryCourseContent(courseContent);}
IService层
public interface ICourseContentService {ListCourseContentEntity queryCourseContent(CourseContentEntity courseContent);
}
ServiceImpl层 /** description:查询课程内容* author: 武梓龙* date: 2023/3/7 15:57* param: [courseContent]* return: java.util.Listcom.wangwei.mvc.entity.CourseContentEntity**/Overridepublic ListCourseContentEntity queryCourseContent(CourseContentEntity courseContent) {return courseContentMapper.queryCourseContentRecord(courseContent);}
Mapper层 ListCourseContentEntity queryCourseContentRecord(CourseContentEntity courseContentEntity);!--通用查询语句--select idqueryCourseContentRecord resultMapcourseContentMap SELECT id,course_assembly_id,assembly_content,create_time,created_id,created_by,update_time,updated_id,updated_byFROM tar_course_content_infoWhEREis_delete0if testid ! null and id #{id} /ifif testcourseAssemblyId ! nulland course_assembly_id #{courseAssemblyId}/ifif testassemblyContent ! nulland assembly_content #{assemblyContent}/ifif testcreatedBy ! nulland created_by #{createdBy}/ifif testupdatedBy ! nulland updated_by #{updatedBy}/ifif testremark ! nulland remark #{remark}/if/select
结果 2.Mapper层sql语句的复用 结果 通过编写通用sql我们对于用一个表的查询(其他的增删改也是可以的)就只需要一个sql语句就可以了通过传入的参数不同我们得到的结果也会不同。以下是同一个sql语句传入两个参数和传输三个参数的结果。 四总结 面向对象的三个特征是封装继承和多态封装的目的就是让我们的代码复用性强。便于后期的维护。所以在我们进行编码之前首先要考虑的就是我们写的代码有没有通用性和抽象性。是不是别人有类似的业务的时候能复用我们写的代码。让我们编写的代码更加的有价值。