1. 程式人生 > >Spring Boot(五)基於restful風格的增刪改查

Spring Boot(五)基於restful風格的增刪改查

簡介

傳統的SSM專案,如果想要編寫基於restful風格的介面,需要在web.xml配置檔案中配置HiddenHttpMethodFilter過濾器,將頁面普通的put請求轉換成delete、put請求。而spring boot則已經幫我們配置好了,故使用spring boot編寫restful風格的介面的時候,只需要直接coding就可以啦!

<!-- SSM使用Rest風格的URI,需要配置該過濾器,將頁面普通的Post請求轉為指定的delete、put請求 -->
<filter>
    <filter-name>HiddenHttpMethodFilter</filter-name>
    <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>

準備

本章程式碼的編寫需要先整合mybatis,可以看下我的這篇部落格【Spring Boot(三)整合MyBatis,Mybatis Generator

編碼

IUserService.java

public interface IUserService {
    User get(Integer id);
    String insert(User user);
    String update(User user);
    String delete(Integer id);
}

UserServiceImpl.java

@Service("iUserService")
public class UserServiceImpl implements IUserService {

    @Autowired
    private UserMapper userMapper;

    @Override
    public User get(Integer id) {
        return userMapper.selectByPrimaryKey(id);
    }

    @Override
    public String insert(User user) {
        int resultCount = userMapper.insert(user);
        if (resultCount > 0) {
            return "新增使用者成功";
        }
        return "新增使用者失敗";
    }

    @Override
    public String update(User user) {
        int resultCount = userMapper.updateByPrimaryKeySelective(user);
        if (resultCount > 0) {
            return "修改使用者成功";
        }
        return "修改使用者失敗";
    }

    @Override
    public String delete(Integer id) {
        int resultCount = userMapper.deleteByPrimaryKey(id);
        if (resultCount > 0) {
            return "刪除使用者成功";
        }
        return "刪除使用者失敗";
    }
}

編寫controller程式碼,增加用post請求,刪除用delete請求,修改用put請求,查詢用get請求

@RestController
public class UserController {

    @Autowired
    private IUserService iUserService;

    @PostMapping("/add_user")
    public String addUser (User user){
        return iUserService.insert(user);
    }

    @DeleteMapping("/delete_user/{userId}")
    public String deleteUser (@PathVariable("userId") Integer userId){
        return iUserService.delete(userId);
    }

    @PutMapping("/update_user")
    public String updateUser (User user){
        return iUserService.update(user);
    }

    @GetMapping("/get_user/{userId}")
    public User getUser(@PathVariable("userId") Integer userId){
        return iUserService.get(userId);
    }

}