当前位置: 首页 > news >正文

【SpingBoot】详细介绍SpringBoot项目中前端请求到数据库再返回前端的完整数据流转,并用代码实现

在SpringBoot项目中,前端请求到最终返回的完整数据流转一般包括以下几个步骤:

  1. 前端发送HTTP请求到后端Controller。

  2. Controller接收到请求后,调用相关Service处理业务逻辑。

  3. Service调用DAO层获取数据。

  4. DAO层访问数据库获取数据。

  5. 数据库返回数据给DAO层。

  6. DAO层将数据返回给Service层。

  7. Service层将处理结果返回给Controller。

  8. Controller将结果封装为HTTP响应,返回给前端。

下面我们通过一个简单的例子来演示完整的数据流转:

  1. 前端发送HTTP请求

在前端页面上,我们发送一个GET请求到后端Controller,请求获取所有的用户数据:

$.ajax({url: "/users",type: "GET",dataType: "json",success: function(data) {// 处理返回的数据}
});

      2.Controller接收到请求后,调用相关Service处理业务逻辑

在后端,我们定义一个UserController类来处理请求:

@RestController
@RequestMapping("/users")
public class UserController {@Autowiredprivate UserService userService;@GetMapping("/")public ResponseEntity<List<User>> getAllUsers() {List<User> users = userService.getAllUsers();return new ResponseEntity<>(users, HttpStatus.OK);}
}

在该类中,我们使用@Autowired注解注入了一个UserService对象,并定义了一个@GetMapping注解的方法来处理GET请求。该方法调用了UserService对象的getAllUsers()方法。

         3.Service调用DAO层获取数据

在UserService类中,我们实现getAllUsers()方法:

@Service
public class UserServiceImpl implements UserService {@Autowiredprivate UserDao userDao;@Overridepublic List<User> getAllUsers() {return userDao.getAllUsers();}
}

在该类中,我们使用@Autowired注解注入了一个UserDao对象,并实现了UserService接口的getAllUsers()方法。

  4.DAO层访问数据库获取数据

在UserDao类中,我们使用JdbcTemplate访问数据库:

@Repository
public class UserDaoImpl implements UserDao {@Autowiredprivate JdbcTemplate jdbcTemplate;@Overridepublic List<User> getAllUsers() {String sql = "SELECT * FROM user";List<User> users = jdbcTemplate.query(sql, new UserMapper());return users;}private static final class UserMapper implements RowMapper<User> {@Overridepublic User mapRow(ResultSet rs, int rowNum) throws SQLException {User user = new User();user.setId(rs.getLong("id"));user.setUsername(rs.getString("username"));user.setEmail(rs.getString("email"));return user;}}
}

在该类中,我们使用@Autowired注解注入了一个JdbcTemplate对象,并实现了UserDao接口的getAllUsers()方法。该方法执行了一条查询SQL语句,将结果集映射为一个List<User>对象。

5.数据库返回数据给DAO层

JdbcTemplate会将查询结果封装为一个ResultSet对象返回。

6.DAO层将数据返回给Service层

UserDao将ResultSet对象映射为List<User>对象后,返回给UserService。

7.Service层将处理结果返回给Controller

UserService将List<User>对象返回给UserController。

8.Controller将结果封装为HTTP响应,返回给前端

UserController将List<User>对象封装为HTTP响应,返回给前端:

[{"id": 1,"username": "user1","email": "user1@example.com"},{"id": 2,"username": "user2","email": "user2@example.com"}
]

通过上述步骤,我们成功实现了SpringBoot项目中前端请求到数据库再返回前端的完整数据流转。

http://www.lryc.cn/news/153472.html

相关文章:

  • kubesphere devops使用
  • Selenium如何用于编写自动化测试脚本?
  • linux入门到精通-第二章-常用命令和工具
  • C语言初阶测评题:测试你的基础知识和编程技能!!
  • 使用HTTPS模式建立高效爬虫IP服务器详细步骤
  • 每日一题 230二叉搜索树中第K小的元素(中序遍历)
  • 文件包含漏洞及漏洞复现
  • Android 手游聚合SDK小知识(一)
  • 桂理理工大题
  • Jmeter接口测试+压力测试
  • mysql‘逻辑删除‘和‘唯一索引‘冲突的解决方案
  • MQTT,如何在SpringBoot中使用MQTT实现消息的订阅和发布
  • gRPC-Gateway 快速实战
  • 〔019〕Stable Diffusion 之 单图中绘制多人分区域写提示词 篇
  • Scala入门,idea关联Scala
  • 3DCAT携手华为,打造XR虚拟仿真实训实时云渲染解决方案
  • Spring Security注销后未正确保存空的SecurityContext漏洞CVE-2023-20862
  • 11、监测数据采集物联网应用开发步骤(8.2)
  • 【PWN · ret2text | RISC-V异构】[2023 羊城杯]login
  • 【HBZ分享】TCP可靠性传输如何保证的?以及传输优化之Nagle算法
  • 智能电销机器人,主要体现的价值是什么
  • Win7系统电脑开机总出现硬盘自检的简单解决方法
  • 计网第四章(网络层)(五)
  • ios 手机浏览器,点击输入框页面会放大
  • 全局异常处理
  • 更健康舒适更科技的照明体验!SUKER书客护眼台灯 L1上手体验
  • Locked勒索病毒:最新变种.locked袭击了您的计算机?
  • 随机森林算法
  • 如何将国标规范用EndNote插入到英文期刊中,自定义文献插入指南
  • 重写 UGUI