javaWeb从入门到进阶(SpringBoot基础案例)

前言:这篇我们基于前面学习的基础知识,来做一个基于前后端分离的业务场景下的一个后端智能员工管理系统。

我们采用三层架构的软件设计模式,将应用程序分为三个逻辑层

1. Controller 层(控制层/表现层)

作用:
  • 接收用户请求(HTTP 请求)

  • 调用 Service 层处理业务

  • 返回响应结果(JSON/HTML)

2.在类中定义@RestController

  • ✅ 参数校验(简单校验)

  • ✅ 请求转发

  • ✅ 响应封装

  • 不应该包含业务逻辑

  • 不应该直接操作数据库

2. Service 层(业务层/服务层)

作用(这是重点):
  • 处理核心业务逻辑

  • 事务管理(@Transactional)

  • 协调多个数据操作

3. Mapper/Repository 层(数据访问层/持久层)

作用:
  • 直接与数据库交互

  • 执行 SQL 操作

  • 封装数据存取细节

  • ✅ 执行 CRUD 操作

  • ✅ 实现 SQL 查询

  • 不应该包含业务逻辑

  • 不应该处理业务流程

这里我们要注意一开始选择的依赖,是JPA还是Mybatis,

@MapperMyBatis 的注解

对于初学者: 对于企业项目:

用 JPA! 因为: 用 MyBatis! 因为:

  1. 更简单,不用写 SQL SQL 可控,性能优化方便

  2. 教程可能用的是 JPA 复杂查询更灵活

  3. 快速完成项目 国内企业更常用

流程解释:

用户请求>Controller >Service>Mapper >数据库

>查询结果>Mapper>Service>Controller>响应结果到用户

那我们在application.prprttities中配置的是什么:

++在 application.properties 中配置的是 MyBatis 和数据库连接。完整的配置代码。++

#驱动类名称
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#数据库连接的url
spring.datasource.url=jdbc:mysql://localhost:3306/tlias
#连接数据库的用户名
spring.datasource.username=root
#连接数据库的密码
spring.datasource.password=1234

#配置mybatis的日志, 指定输出到控制台
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
#开启mybatis的驼峰命名自动映射开关 a_column ------> aCloumn
mybatis.configuration.map-underscore-to-camel-case=true

REST风格

++REST(REpresentational State Transfer),表述性状态转换,它是一种软件架构风格
http://localhost:8080/users/1 GET:查询id为1的用户
http://1ocalhost:8080/users POST:新增用户++

++http://1ocalhost:8080/users PUT:修改用户
http://1ocalhost:8080/users/1 DELETE:删除id为1的用户++

注意事项
++REST是风格,是约定方式,约定不是规定,可以打破。
描述模块的功能通常使用复数,也就是加s的格式来描述,表示此类资源,而非单个资源。如:users、emps、books++

部门管理:

基础步骤描述:我们在controller类中接收用户请求,并在其中定义了一个方法Result,用于直观的返回结果,并使用了注解@Slf4j,@RequestMapping。之后我们启动测试类,并用postman模拟用户发送请求,返回给postman一系列的查询结果。

1.我们是在controller方法中,因为接收到用户的查询请求,因此定义了list方法,并在其中调用了service中的list方法,包装结果并返回。

2.service接口类中定义方法签名,在实现类中实现方法,调用Mapper查询数据;

3.Mapper中查询数据执行sql语句,并且把查询的结果返回到集合中,其中Mybatis的神奇之处就是将数据结果映射到集合中。

  • List<Dept>:返回类型是 Dept 对象的列表

  • list():方法名(通常对应 XML 中的 SQL 语句 ID)

  • 整体意思:查询所有部门信息,以 Dept 对象列表的形式返回

🔍 MyBatis 的魔法:接口与 SQL 的绑定

  • Controller:管"要什么"(接收请求,返回结果)

  • Service:管"怎么做"(业务逻辑处理)

  • Mapper:管"拿数据"(执行SQL)

相关推荐
benbenAItalk4 小时前
数字人口播视频的批量生产实践:素材规范、任务编排与质量验收
java·前端·音视频
sunshine22 girl4 小时前
Java学习二 基本语法2, 算术运算符
java·学习
2601_966949654 小时前
为什么量化策略需要大量历史股票数据?从回测可信度理解数据规模
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
niucloud-admin4 小时前
JAVA V6 多商户商城 开发文档——插件目录结构
java·开发语言
2601_962885724 小时前
如何用 Python 扫描 A 股跳空缺口并统计缺口回补概率?
java·前端·python
滕州市燕猫虎计算机科技工作室个体工商户4 小时前
Java锁
java·开发语言
多加点辣也没关系5 小时前
JavaScript|第31章:表单与控件
开发语言·javascript·ecmascript
菜鸟~noob2335 小时前
【电子战】 第09篇:阵列信号处理——波束形成、MVDR、MUSIC【含matlab代码】
开发语言·matlab·信号处理
ocean21035 小时前
2025-2026年Python面试高频知识点洞察
开发语言·python·面试·python八股文
零依赖极客5 小时前
Day 6·1 ARMv8.2 dotprod——vdotq_s32 一条指令做 4 个点积
c语言·开发语言·人工智能·矩阵·arm·vllm