基于spring boot后端读取数据库数据

近期完成了一个前后端分离的项目,所思所想,分享一哈!

第一次做前后端分离项目时,我想大家对此肯定有很多疑问:

(1)前端是做界面,后端是做接口,那到底什么是接口呢?

(2)我以前做Java项目时候,前端界面也是我写的啊,现在分离开来,我后端的数据怎么给前端呢?

       其实不管你是前端人员还是后端人员,要想在互联网行业中如鱼得水,你几乎得啥都会一点,然后精于一门技术。对于接口,我有一个通俗的解释:前端把精美的界面呈现在大家面前,但是,那只是一个vase,没有任何实际数据,后端对数据库进行处理后,就会把数据传上来,那怎么传呢?利用链接来与前端对接。熟悉Spring boot的同学应该知道,controller层中有各种各样的映射,我们在浏览器中输入你设置好的映射,你就可以访问这些数据了;不熟悉spring boot的同学可以看看浏览器中的链接,如优快云网址“https://www.youkuaiyun.com/”,我现在所处页面网址“https://mp.youkuaiyun.com/postedit”,后面是不是多了一个“/postedit”?我们把这种可以来访问数据的url称之为接口。前端页面通过ajax就可以之间访问,实现前后端分离啦!

      理解原理之后,我们试着来做一下后端是如何从数据库读取数据变成接口的。

(1)创建Spring boot项目。并创建controller、dao和pojo文件夹。项目目录结构如下:

2.pom.xml如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.6.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.gang</groupId>
    <artifactId>study_boot_demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>study_boot_demo</name>
    <description>Demo project for Sprin
### 后端读取数据库数据的方法与示例 为了实现后端读取数据库数据的功能,通常会采用 ORM(对象关系映射)框架简化开发流程。以下是基于 Spring Boot 和 MyBatis 的具体实现方式。 #### 1. 数据模型定义 在项目中,首先需要创建一个 Java 类作为数据模型,用于表示数据库中的表结构。例如: ```java public class User { private Integer id; private String username; private String password; // Getters and Setters 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; } } ``` 此部分对应于将 SQL 查询结果转化为 Java 对象的过程[^3]。 #### 2. Mapper 接口配置 接着,通过 MyBatis 定义一个接口文件 `UserMapper` 来描述对数据库的操作逻辑: ```java import org.apache.ibatis.annotations.Select; import java.util.List; public interface UserMapper { @Select("SELECT * FROM users WHERE username = #{username}") List<User> findByUsername(String username); } ``` 上述代码展示了如何利用 MyBatis 注解执行查询语句并返回对应的实体列表[^4]。 #### 3. Service 层封装业务逻辑 随后,在服务层调用 Mapper 方法处理实际需求: ```java @Service public class UserService { @Autowired private UserMapper userMapper; public boolean authenticate(String username, String password) { List<User> userList = userMapper.findByUsername(username); if (!userList.isEmpty()) { User user = userList.get(0); return user.getPassword().equals(password); } return false; } } ``` 这里实现了基本的身份验证功能:先依据用户名检索记录;再对比存储的密码值判断匹配情况[^2]。 #### 4. Controller 控制器接收请求 最后一步是在控制器类里暴露 RESTful API 给客户端调用: ```java @RestController @RequestMapping("/api/auth") public class AuthController { @Autowired private UserService userService; @PostMapping("/login") public ResponseEntity<String> login(@RequestBody Map<String,String> credentials){ String username=credentials.get("username"); String password=credentials.get("password"); Boolean isAuthenticated=userService.authenticate(username,password); if(isAuthenticated){ return new ResponseEntity<>("Login Successful", HttpStatus.OK); }else{ return new ResponseEntity<>("Invalid Credentials",HttpStatus.UNAUTHORIZED); } } } ``` 以上片段说明了当接收到 POST /api/auth/login 请求时,解析传入参数并通过注入的服务实例完成身份校验过程[^5]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值