SpringBoot + MyBatis,全流程实现RESTful API

上一篇博客中,我们通过MybatisGenerator命令,生成了Pojos,本文将继续介绍,如何根据Mybatis生成的内容,添加ControllerService,实现RESTful API

上文:Spring Boot整合MyBatis,自动生成DAO

3. 修改Mapper

我们尝试修改一下Mapper,在BooksMapper.java中,增加以下内容:

    @Select({
        "select",
        "id, name, author, publish",
        "from books",
    })
    @Results({
        @Result(column="id", property="id", jdbcType=JdbcType.INTEGER, id=true),
        @Result(column="name", property="name", jdbcType=JdbcType.CHAR),
        @Result(column="author", property="author", jdbcType=JdbcType.CHAR),
        @Result(column="publish", property="publish", jdbcType=JdbcType.CHAR)
    })
    List<Books> selectAll();

表示获取所有的图书信息。

4.添加Service

然后我们在service文件夹中,添加一个BookIservice.java接口,同时再添加一个mpl文件夹,表示它的实现,在impl文件夹中增加BookService.java类,实现BookIservice接口。
BookIService.java

public interface BooksIService {
    public void insert(Books books);
    public Books selectByPrimaryKey(int id);
    public List<Books> selectAll();
}

BookService.java

@ComponentScan({"com.example.demo.dao"})
@Service("booksService")
public class BooksService implements BooksIService{
    @Resource
    private BooksMapper booksMapper;

    @Override
    public void insert(Books books) {
        booksMapper.insert(books);
    }

    public Books selectByPrimaryKey(int id) {
        return booksMapper.selectByPrimaryKey(id);
    }

    public List<Books> selectAll(){
        return booksMapper.selectAll();
    }
}

5. 添加controller

接下来,我们添加controller文件夹,并实现BooksController.java控制器。
BooksController.java

@RestController
@ComponentScan({"com.example.demo.service"})
@MapperScan("com.example.demo.dao")
public class BooksController {
    
    @Resource
    private BooksIService booksService;
    
    @CrossOrigin
    @RequestMapping(value="/getAllBooks", method=RequestMethod.GET)
    public List<Books> getAllBooks(){
        List<Books> bookList = booksService.selectAll();
        return bookList;
    }
}

通过代码我们可以看出,我们使用了GET方法,在getAllBooks函数中进行了实现,那么我们下面试一试:

在这里插入图片描述

我们知道,浏览器直接访问,相当于GET方法,这样一来,整个的流程就算是打通了。

5. 含参数访问

给个简单的实例:

    @CrossOrigin
    @RequestMapping(value="/getBookById", method = RequestMethod.POST)
    @ResponseBody
    public String getBookById(@RequestBody String id){
        Books books =  booksService.selectByPrimaryKey(Integer.parseInt(id));
        return "HelloWord"+"fasdf--"+books.getName()+"--"+books.getAuthor();
    }

猜你喜欢

转载自blog.csdn.net/wgh295360998/article/details/85891810