一、持久层
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);
}
}