后端设计框架及思路

框架介绍

后端项目大概分为这么几层model(实体层)、controller(接口层)、service(业务层)、Dao(Dao层有Mapper接口和与之映射的XML文件)。
实体层存放对象实体模板,业务流水:
controller-->service-->dao(dao层接口)--->dao(dao层xml)
  • controller拿到前端数据,传给service。
  • service经过处理调用dao层下的Mapper接口,从而调用增删改查方法
  • 然而Mapper的实现和与之一一对应的映射XML文件有关

上面提到的都会在下面展开细说的。

工作开始前准备

1. 设计数据库
2. Navicat建库建表
3. 使用相关工具(mybatis-generator-gui)快速生成代码(实体类,dao层的接口和xml)

1.设计数据库

根据数据库课程所学习的数据库设计规范去设计就好了,数据库这门课是要好好吃透的,不仅是学sql语句的问题,表和表的对应关系特别重要。

2.Navicat建库建表

下载Navicat软件,黄色或者彩色都可以,然后根据教程操作,很简单的。
Nacicat建库建表教程

3. 使用相关工具(mybatis-generator-gui)快速生成代码(实体类,dao层的接口和xml)

mybatis-generator-gui生成工具GitHub地址
官方使用教程
运行它之后就会出现下面的界面,下边有我打的一些注释
在这里插入图片描述
对应着原来项目目录看一下(临时的)
![在这里插入图片描述(https://img-blog.csdnimg.cn/20200330024030768.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xhb2R1MjMz,size_16,color_FFFFFF,t_70)

项目所在目录↓
项目所在目录
选择绝对路径
在这里插入图片描述
项目目录结构在这里插入图片描述

到此为止项目便生成好了model、dao层下的Mapper接口文件和映射XML文件。

controller层(接口层)

获取来自前端的数据,然后调用相关service层。
一个简单的接口举例,其实接口注释形式有很多的,可以参考其他各种项目
注释后面method的后面可以改成其他方法,GET,POST,DELETE,PUT都有,然后value后面的就是接口访问地址了。
在这里插入图片描述
注意我上面的参数是XiaohaRoom对吧,这就要求前端存入参数的时候必须要个按照XiaohaRoom这个实体里面属性来。↓
在这里插入图片描述
如果这个参数不放对象也可以,那就一个一个传入,比如下面的(其他项目)↓
在这里插入图片描述
然后要注意非常重要的一点,我们要导入一些工具类
比如 import com.alibaba.fastjson.JSONArray;
要找一些map list string 对象,和 json 互相转化的工具,这样才能和前端沟通↓
在这里插入图片描述
在这里插入图片描述
针对这个工具(fastjson)给你们几个教程,不太全,百度就行(我也是网上找的,自己找找都有的)
教程1
教程2

这边要多多注意前端给的接口文档,看看他给你什么参数,你要给他返回什么参数,举个例子↓
在这里插入图片描述

service层(业务层)

几个简单的service层介绍↓,后续会更新一些复杂的例子。
括号中的参数便是controller层传过来的参数,同样这里return也是返回到上一个controller。
在这里插入图片描述
然后这边根据业务需求,进行相关增删改查操作,调用相应的dao层即可,比如看这个例子↓,根据前端给的个人信息(整合到了user对象里传过来了)
然后用这个Dao层中的方法(这个updateByPrimaryKey是用那个工具自动生成默认Mapper接口和XML文件里的方法),直接就可以用了。
在这里插入图片描述

我这么说可能有点懵是吧,进入这个方法看一下是怎么回事

  • 首先我们把user中的id拿了出来,用这个id去数据库里找到用户所在的哪一行,然后用我们已经有的user信息去更新它。
  • 这里便是dao默认就有的方法,看最后一行的updateByPrimaryKey,就是刚才举例用到的。在这里插入图片描述
  • 然后 updateByPrimaryKey方法便对应其映射XML中的这一段代码↓
  • 标签中间夹着的就是sql语句,这个不难,你们学了之后就知道了,注意看id后面和parameterType,id和上面Mapper中的接口名字是对应的。在这里插入图片描述
  • 这些都是最基本的一些常用方法,其实实际开发中都是自己去写一些方法,不过就算没接触过也没事,照葫芦画瓢就完事了。那怎么照葫芦画瓢呢,给你举个例子你就知道了,我们进入dao层吧。

dao层(包含Mapper接口和映射XML文件)

每个实体对应的dao层下文件都是有一个Mapper接口和映射XML文件的
所以都是成对存在的,图中那个MyBatisBaseDao便是刚才上面提到的工具自动生成时会提供的一些默认方法。
在这里插入图片描述
假如我们现在想根据用户id来搜索他的关注列表(下面是service层)
在这里插入图片描述
但是fans表中还有粉丝(followers),我只想取他的关注(followings)
这时候就需要我们照葫芦画瓢,写自己的dao了,首先是Mapper接口↓
@Param注释中的参数,上接service层传过来的参数id,同时这个参数名特别重要,“user_id” 必须和后面XML文件中的sql中参数名是对应的
在这里插入图片描述
下面这个图是上面Mapper接口对应的XML文件,注意看id是和上面的接口名字一样,同样看sql语句中#{user_id},这个就是对应上面传过来的参数。
在这里插入图片描述

是不是现在对大概流程有了了解呢?

…(未完待续)

前端接口文档:前端接口文档(可编辑)
先不管那个全局操作码。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值