0


【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 {

    @Autowired
    private 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 {

    @Autowired
    private UserDao userDao;

    @Override
    public List<User> getAllUsers() {
        return userDao.getAllUsers();
    }
}

在该类中,我们使用

@Autowired

注解注入了一个

UserDao

对象,并实现了

UserService

接口的

getAllUsers()

方法。

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

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

@Repository
public class UserDaoImpl implements UserDao {

    @Autowired
    private JdbcTemplate jdbcTemplate;

    @Override
    public 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> {
        @Override
        public 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": "[email protected]"
  },
  {
    "id": 2,
    "username": "user2",
    "email": "[email protected]"
  }
]

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


本文转载自: https://blog.csdn.net/wenhuakulv2008/article/details/132588078
版权归原作者 张天龙 所有, 如有侵权,请联系我们删除。

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

还没有评论