上一篇博客中,我们通过Mybatis
的Generator
命令,生成了Pojos
,本文将继续介绍,如何根据Mybatis
生成的内容,添加Controller
和Service
,实现RESTful API
上文:Spring Boot整合MyBatis,自动生成DAO
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();
表示获取所有的图书信息。
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();
}
}
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
方法,这样一来,整个的流程就算是打通了。
给个简单的实例:
@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();
}