springboot目前所学,实现学生班级demo的后端接口思路

确定Demo要求

项目实践
班级: 班级名称,创建时间 修改时间 是否删除
学生:所属班级,学生名称 性别 年龄 创建时间 修改时间 是否删除 加入班级时间

需要实现以下内容
1):powerdesigner设计班级 学生两张表
2):用COLA初始化项目(分层架构)
3):代码实现以下需求;并且使用postman自测
4):代码部署流水和质量检查

1:查询所有学生列表,支持分页,字段有:学生名称,所属班级,加入班级时间,性别,年龄;支持按照班级名称查询
2:查找学生详情 字段有:学生名称,所属班级,加入班级时间,性别,年龄
3:修改学生信息 修改内容有:学生名称,班级,性别年级
4:班级加入学生
6:班级删除学生

文末附有代码链接

确定项目数据源信息

1、根据要求创建数据库school_db中的两张表,分别是student_db,class_db以及对应的数据库字段信息。

2、如何开始项目框架,先下载个开源的阿里springboot脚手架这里有3种分层层次:第一种MVC,第二种分层架构,第三种COLA。依次从小项目到大项目的模式发展,这里也可以根据自己对项目开发整体的经验,自己编写属于自己的架构模式,显然新手是达不到这要求的,我的项目就采用阿里springboot脚手架中的分层架构,中等刚好使用。
下面是我自己对分层项目结构的理解:
springboot分层理解

当准备项目做完之后开始编写主要代码的思路

因为是个小demo所以涉及到的分层模块并不是全部,我就讲我代码编写设计到的代码分层模块

整体分层模块:

其中主要涉及到3个模块内容:demo-dao、demo-service、demo-web。
下面就来分别解释3部分的主要内容了

1、demo-dao模块

demo模块主要直接与数据库交换层,里面的内容都跟数据有关系
下面再深入解释:
在这里插入图片描述
config包:各种与数据库有关的框架配置,例如我这里面就是写了Mybatis-plus分页相关组件设置和Swagger接口文档相关设置。
entity包:也可以写成model包,主要放置实体类,在我编写的entity包中再次分层4种类型的实体类,分别是base基础实体类包,在大部分实体中提取公共的部分单独创建基础实体类。
用例子base包解释:比如说我们要写的demo中Student实体和Class实体都有相同的属性字段:id、创建时间、修改时间、是否删除(逻辑删除)这4种相同的字段在数据库中的操作方法都是一样的那么就可以提取做基础实体。
直接在entity实体下面的就是Student、StudentClass实体正如上所说因为公共属性都提取出来到base基础包下的基础实体类,所有大部分entity下的实体都是继承基础实体类,从而达到代码复用的思想。
如何就说说DTOVO在其中起到的作用,由于考虑到与前端对接的时候不能直接把与数据库相连的实体内容全部传递给前端,因为这样就容易暴露实体的所有数据属性,而前端不都要所有属性内容,那么VO包就是后端传给前端所需要的实体类,一般都是entity下的实体类的部分属性组成的VO实体。这样就可以避免相应属性字段的显示暴露出来。
DTO包是前端要提交到后端的数据实体
在接着说handler包内容:主要是设置一些自动填充的字段内容的配置类,例如在创建、删除、更新新班级或者学生的时候,就会对数据库中创建时间,修改时间,逻辑删除等字段直接做出相应修改的代码。
mapper包(也可叫dao包)与resources下的mappers包形成映射关系,简单说明就在mappers包下写数据操作sql语句的xml文件,就可以将实现sql方法映射到对应的mapper包下对应的接口中的抽象方法,这里一般都写简单业务操作逻辑,例如增删改查,直接调用Mybatis-plus封装的方法就可以简单实现,但这些封装方法中又有限制修改的条件,这就得自己手写sql语句去实现,而Mybatis-plus的封装方法的限制条件需要深入学习Mybatis-plus封装方法需要理解的底层实现原理才能,明白其中的奥秘。

2、demo-service模块

在这里插入图片描述
这模块就是复杂业务层,用来编写复杂的需求页面的部分,而controller主要调用的封装方法都是来自service中的封装方法,来实现相应功能要求。简单来说就是简单的增删改查,无法满足业务需求,需要一个Service接口再封装新方法或者重新方法来实现。

3、demo-web

在这里插入图片描述
对外实现接口层,前端需要访问的接口都是存放在这里,当服务器启动的时候,输入对应url即可通过后端接口处理数据,实现前端页面数据动态变化的需求。
因为本次所写是一个小demo所以接口就无区分内容使用,当接口很多是时候,要么分模块来分接口,要么分包来分接口。
前端部分主要存放于resource文件中,这就是前后端分离工作,当整合前后端时就是前后端结合了。

4、其他模块

demo-api是当多个人开发项目的时候,提供demo-api中的方法给其他后端开发人员使用。
demo-manager应该算得上管理模块代码部分,具体如何,还未深入了解。
demo-start就是系统启动类,启动项目,全局配置文件也在里面使用。

具体代码链接:
demo代码

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值