
目录一.Spring Boot后端框架二.pom.xml配置文件三.Maven 的工作方式四.实体层Entity五.控制层Controller六.数据访问层Mapper七.业务层Service八.全流程一.Spring Boot后端框架1.建立实体类跟数据库表字段保持一致2.建立mapper接口定义要操作数据库的动作3.建立mapper的xml文件写具体的sql语句4.建立service类处理业务逻辑5.在controller类中展示处理的结果浏览器请求 /abcd→ Controller.getUser() 调用→ Service.findAll() 调用→ Mapper.findAll() 执行 SQL→ 数据库返回结果← Mapper 返回 List← Service 返回 List← Controller 返回 JSON← 浏览器收到数据二.pom.xml配置文件pom.xml放置着各种依赖有了依赖才能运用 比如说redismysqlmybaits都必须添加可以在刚创建项目时候勾选对应的依赖也可以创建项目之后去官网上找到对应依赖进行手动添加。添加完后要通过Maven更新dependency groupIdcom.mysql/groupId !-- 谁写的 -- artifactIdmysql-connector-j/artifactId !-- 叫什么 -- scoperuntime/scope !-- 什么时候用 -- /dependency三.Maven 的工作方式你在 pom.xml 里声明我要用这个库Maven 会自动去网上Maven 仓库帮你下载你不用手动去网上找 jar 包。就像你在购物清单上写要一箱砖头Maven 就是那个帮你去建材市场买回来的人。这里是各个maven的jar包 也就是依赖四.实体层Entity这里是对应了你的数据库表里的各个数据你要用表里的数据 必须全部都写下来五.控制层Controller职责接收 HTTP 请求返回响应关键注解RestController、RequestMapping我的代码Usercontroller.java— 处理/abc和/abcd请求RestController注解标记这个类是 REST 控制器能接收 HTTP 请求并返回 JSON 数据Autowired注解让 Spring 自动把Userservice对象注入进来不用自己 newprivate Userservice userservice声明私有成员变量userservice类型是Userservice业务逻辑层RequestMapping(/abc)注解定义接口路径访问 http://localhost:8080/abc 会执行这个方法路径数据来源用途/abc代码里硬编码第17-22行手动 set测试用返回固定数据/abcd调用userservice.findAll()查数据库实际业务返回数据库里的所有用户Autowireduserservice.findAll()就是 Spring Boot 分层架构的体现Controller 不直接操作数据库而是交给 Service 层去处理。六.数据访问层Mapper职责与数据库交互执行 SQL关键注解Mapper、MapperScan你的项目UserMapper.javablog_platform.xml— MyBatis 映射 SQL在Mapper里定义了一个接口UserMapper只定义了要查什么真正的 SQL 在blog_platform.xml里。MyBatis 会在运行时自动实现这个接口把方法调用转成 SQL 执行。接下来我们看resource/mapper 这是实现了那个接口namespace是映射就是那个usermapper的路径id就是mapper接口中实现的方法findAllresultType存放的是映射的数据库表这个实体包位置然后写入sql的语句resource包下面的另一个文件 yml配置的是与数据库的连接七.业务层Service职责核心业务处理、事务管理关键注解Service你的项目Userservice.java— 调用 Mapper 查询数据接收 Controller 的请求比如查所有用户调用 Mapper 执行数据库操作userMapper.findAll()处理业务逻辑比如过滤、计算、校验等返回结果给 Controller行号代码含义1package org.example.demo3.Service;包声明属于 Service 层9Service注解标记这个类是 Spring 的 Service 组件会被自动扫描并创建 Bean10public class Userservice {定义公开类Userservice11Autowired注解自动注入UserMapper对象不用自己 new12private UserMapper userMapper;声明私有成员变量userMapper类型是UserMapperMapper 接口13public Listblog_platform findAll(){定义公开方法返回blog_platform列表13return userMapper.findAll();调用 Mapper 的findAll()方法把结果返回给上层八.全流程Controller 控制层RestController // ① 标记为控制器返回 JSON public class Usercontroller { Autowired // ② 自动注入 Service private Userservice userservice; RequestMapping(/abc) // ③ 路径 /abc public blog_platform getName(){ blog_platform bp new blog_platform(); // ④ 创建对象 bp.setId(1); // ⑤ 手动塞数据测试用 bp.setUsername(TOM); bp.setAge(18); bp.setName(张三); bp.setGender(男); return bp; // ⑥ 返回对象 → 自动转 JSON } RequestMapping(/abcd) // ⑦ 路径 /abcd public Listblog_platform getUser(){ return userservice.findAll(); // ⑧ 调用 Service 查数据库 } }Service 业务层Service // ① 标记为业务组件 public class Userservice { Autowired // ② 自动注入 Mapper private UserMapper userMapper; public Listblog_platform findAll(){ return userMapper.findAll(); // ③ 调用 Mapper 执行 SQL } }Mapper 数据访问层Mapper // ① 标记为 MyBatis 接口 public interface UserMapper { // ② 注意是 interface不是 class Listblog_platform findAll(); // ③ 只写方法名SQL 在 XML 里 }配套的blog_platform.xmlmapper namespaceorg.example.demo3.Mapper.UserMapper select idfindAll resultTypeorg.example.demo3.Entity.blog_platform SELECT * FROM user !-- 真正的 SQL 在这里 -- /select /mapper三层对比ControllerServiceMapper注解RestControllerServiceMapper类型classclassinterface注入谁注入 Service注入 Mapper不需要注入职责接收请求、返回响应业务逻辑定义数据库操作写 SQL 吗不写不写接口不写XML 里写返回给谁返给浏览器返给 Controller返给 Service