1、Dao层
全称为Data Access Object
,跟数据库打交道,把数据库中的数据抽出,完成增删改查的功能。一般定义接口,然后将接口传递给service层,便于使用。
2、Service层
调用Dao层提供的接口,实际上业务处理的地方,逻辑代码都写在这里。分为接口和实现类。
3、Controller层
前后端交互桥梁,接收前端的请求,处理完请求后返回后端的数据。对service层的调用也是以接口的形式。
简单的例子——用户信息抽取
controller层
package com.example.usersystem.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.usersystem.common.CommonResult;
import com.example.usersystem.entity.Query;
import com.example.usersystem.entity.SysMessage;
import com.example.usersystem.entity.SysSelectLesson;
import com.example.usersystem.entity.SysUser;
import com.example.usersystem.service.ISysUserService;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping("/sysUser")
public class SysUserController {
@Autowired
private ISysUserService iSysUserService;
@PostMapping("/getUser/{uid}")
@ApiOperation("根据id获取用户信息")
public CommonResult getStuCommentList(@PathVariable Integer uid){
QueryWrapper wrapper=new QueryWrapper();
wrapper.eq("id",uid);
SysUser one = iSysUserService.getOne(wrapper);
return CommonResult.success(one);
}
}
service层
1、接口
package com.example.usersystem.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.usersystem.entity.SysUser;
public interface ISysUserService extends IService<SysUser> {
}
2、实现类
package com.example.usersystem.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.usersystem.entity.SysUser;
import com.example.usersystem.mapper.SysUserMapper;
import com.example.usersystem.service.ISysUserService;
import org.springframework.stereotype.Service;
@Service
public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> implements ISysUserService {
}
Dao层
1、实体
package com.example.usersystem.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
@EqualsAndHashCode(callSuper = false)
public class SysUser implements Serializable {
@Override
public String toString() {
return "SysUser{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
", nickname='" + nickname + '\'' +
", phone='" + phone + '\'' +
", school='" + school + '\'' +
", power=" + power +
", inclass='" + inclass + '\'' +
", cid='" + cid + '\'' +
", email='" + email + '\'' +
'}';
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getSchool() {
return school;
}
public void setSchool(String school) {
this.school = school;
}
public Integer getPower() {
return power;
}
public void setPower(Integer power) {
this.power = power;
}
public String getInclass() {
return inclass;
}
public void setInclass(String inclass) {
this.inclass = inclass;
}
public String getCid() {
return cid;
}
public void setCid(String cid) {
this.cid = cid;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 用户名
*/
private String username;
/**
* 密码
*/
private String password;
/**
* 昵称
*/
private String nickname;
/**
* 手机号
*/
private String phone;
/**
* 学校
*/
private String school;
/**
* 权限
*/
private Integer power;
private String inclass;
private String cid;
private String email;
}
package com.example.usersystem.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.usersystem.entity.SysUser;
public interface SysUserMapper extends BaseMapper<SysUser> {
}
因为mapper继承了BaseMapper类,并且指定了实体,所以可以直接使用父类中定义好的SQL语句,比较复杂的语句还是要自定义。