在数据库中创建 stu 表,表结构如图所示
    image.png
    在反向生成工具中配置要生成代码的表并运行项目
    image.png
    将生成好的代码拷贝到项目中相应目录
    image.png
    【注意】
    代码生成工具只能连续运行一次,运行第二次会在 mapper 文件内追加内容,导致 resultMap 的 id 不唯一
    在 foodie-dev-service 模块中的 com.imooc.service 包下面创建 StuService 接口

    1. package com.imooc.service;
    2. import com.imooc.pojo.Stu;
    3. /**
    4. * @author 92578
    5. * @since 1.0
    6. */
    7. public interface StuService {
    8. public Stu getStuInfo(int id);
    9. public void saveStu();
    10. public void updateStu(int id);
    11. public void deleteStu(int id);
    12. }

    在 foodie-dev-service 模块中的 com.imooc.service.impl 包下面创建 StuServiceImpl 类

    1. package com.imooc.service.impl;
    2. import com.imooc.mapper.StuMapper;
    3. import com.imooc.pojo.Stu;
    4. import com.imooc.service.StuService;
    5. import org.springframework.beans.factory.annotation.Autowired;
    6. import org.springframework.stereotype.Service;
    7. import org.springframework.transaction.annotation.Propagation;
    8. import org.springframework.transaction.annotation.Transactional;
    9. /**
    10. * @author 92578
    11. * @since 1.0
    12. */
    13. @Service
    14. public class StuServiceImpl implements StuService {
    15. @Autowired
    16. private StuMapper stuMapper;
    17. @Transactional(propagation = Propagation.SUPPORTS)
    18. @Override
    19. public Stu getStuInfo(int id) {
    20. return stuMapper.selectByPrimaryKey(id);
    21. }
    22. @Override
    23. public void saveStu() {
    24. }
    25. @Override
    26. public void updateStu(int id) {
    27. }
    28. @Override
    29. public void deleteStu(int id) {
    30. }
    31. }

    在 foodie-dev-api 模块中的 com.imooc.controller 包下面创建 StuFooController 类

    1. package com.imooc.controller;
    2. import com.imooc.service.StuService;
    3. import org.springframework.beans.factory.annotation.Autowired;
    4. import org.springframework.web.bind.annotation.GetMapping;
    5. import org.springframework.web.bind.annotation.RestController;
    6. /**
    7. * @author 92578
    8. * @since 1.0
    9. */
    10. @RestController
    11. public class StuFooController {
    12. @Autowired
    13. private StuService stuService;
    14. @GetMapping("/getStu")
    15. public Object getStu(int id) {
    16. return stuService.getStuInfo(id);
    17. }
    18. }

    install 并运行项目
    image.png
    image.png
    这里出错的原因是 Spring Boot 启动的时候需要对目录文件进行扫描,这里包括 mapper 文件,mapper 文件扫描需要配置。
    在启动入口类中配置扫描 mapper 文件的注解
    image.png
    【注意】
    这里 @MapperScan 要用 tk 下的包
    启动项目成功
    image.png
    访问 http://localhost:8088/getStu/1001
    image.png
    这里出现 404 错误,原因在于 1001 被当作路径,而不是请求参数传递
    访问 http://localhost:8088/getStu?id=1001
    image.png
    此时数据库没有数据,所以前台页面一片空白
    在数据库中插入一条记录
    image.png
    刷新页面,看到返回数据
    image.png