您的位置:

持久层、业务层和控制层的详细阐述

一、持久层

1、持久层的定义

持久层是在应用程序和数据库之间,提供持久化数据存储的一个层次。其主要任务是将应用程序中的数据持久化到数据库中。

2、持久层的作用

持久层的作用就是为了解决数据存储和数据访问的问题。在应用程序中,将数据转化为对象,经过持久化机制,将数据保存到数据库中,从而实现应用程序和数据库之间的数据交互。

3、持久层的实现


public interface UserDao {
    /**
     * 新增用户
     *
     * @param user 用户信息
     * @return 新增影响行数
     */
    int addUser(User user);

    /**
     * 根据ID查询用户
     *
     * @param id 用户ID
     * @return 用户信息
     */
    User getUserById(Integer id);

    /**
     * 根据用户名查询用户
     *
     * @param username 用户名
     * @return 用户信息
     */
    User getUserByUsername(String username);

    /**
     * 更新用户
     *
     * @param user 用户信息
     * @return 更新影响行数
     */
    int updateUser(User user);

    /**
     * 删除用户
     *
     * @param id 用户ID
     * @return 删除影响行数
     */
    int deleteUser(Integer id);
}

二、业务层

1、业务层的定义

业务层是在持久层和控制层之间,负责处理数据的一层。其主要任务是对数据库中的数据进行加工和处理,使其更加符合业务需求。

2、业务层的作用

业务层的作用是为了解决业务逻辑的问题,对持久层的数据进行加工和处理,使其更加符合业务需求,为控制层提供数据。

3、业务层的实现


@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserDao userDao;

    /**
     * 新增用户
     *
     * @param user 用户信息
     * @return 新增结果
     */
    @Override
    public Result addUser(User user) {
        User tempUser = userDao.getUserByUsername(user.getUsername());
        if (tempUser != null) {
            return Result.fail("用户名已存在");
        }
        int rows = userDao.addUser(user);
        return ResultUtil.isSuccess(rows);
    }

    /**
     * 根据ID查询用户
     *
     * @param id 用户ID
     * @return 用户信息
     */
    @Override
    public User getUserById(Integer id) {
        return userDao.getUserById(id);
    }

    /**
     * 根据用户名查询用户
     *
     * @param username 用户名
     * @return 用户信息
     */
    @Override
    public User getUserByUsername(String username) {
        return userDao.getUserByUsername(username);
    }

    /**
     * 更新用户
     *
     * @param user 用户信息
     * @return 更新结果
     */
    @Override
    public Result updateUser(User user) {
        int rows = userDao.updateUser(user);
        return ResultUtil.isSuccess(rows);
    }

    /**
     * 删除用户
     *
     * @param id 用户ID
     * @return 删除结果
     */
    @Override
    public Result deleteUser(Integer id) {
        int rows = userDao.deleteUser(id);
        return ResultUtil.isSuccess(rows);
    }
}

三、控制层

1、控制层的定义

控制层是应用程序中最上层的一层,在持久层和业务层之上。其主要任务是接收用户请求,处理用户提交的信息,并返回响应结果。

2、控制层的作用

控制层的作用是为了解决用户请求的问题,接收用户提交的信息,通过业务层将相关信息处理,并返回响应结果给用户。

3、控制层的实现


@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;

    /**
     * 新增用户
     *
     * @param user 用户信息
     * @return 新增结果
     */
    @PostMapping("/add")
    public Result addUser(@RequestBody User user) {
        return userService.addUser(user);
    }

    /**
     * 根据ID查询用户
     *
     * @param id 用户ID
     * @return 用户信息
     */
    @GetMapping("/getById")
    public User getUserById(@RequestParam("id") Integer id) {
        return userService.getUserById(id);
    }

    /**
     * 根据用户名查询用户
     *
     * @param username 用户名
     * @return 用户信息
     */
    @GetMapping("/getByUsername")
    public User getUserByUsername(@RequestParam("username") String username) {
        return userService.getUserByUsername(username);
    }

    /**
     * 更新用户
     *
     * @param user 用户信息
     * @return 更新结果
     */
    @PostMapping("/update")
    public Result updateUser(@RequestBody User user) {
        return userService.updateUser(user);
    }

    /**
     * 删除用户
     *
     * @param id 用户ID
     * @return 删除结果
     */
    @PostMapping("/delete")
    public Result deleteUser(@RequestParam("id") Integer id) {
        return userService.deleteUser(id);
    }
}