在数据库中创建 stu 表,表结构如图所示
在反向生成工具中配置要生成代码的表并运行项目
将生成好的代码拷贝到项目中相应目录
【注意】
代码生成工具只能连续运行一次,运行第二次会在 mapper 文件内追加内容,导致 resultMap 的 id 不唯一
在 foodie-dev-service 模块中的 com.imooc.service 包下面创建 StuService 接口
package com.imooc.service;import com.imooc.pojo.Stu;/*** @author 92578* @since 1.0*/public interface StuService {public Stu getStuInfo(int id);public void saveStu();public void updateStu(int id);public void deleteStu(int id);}
在 foodie-dev-service 模块中的 com.imooc.service.impl 包下面创建 StuServiceImpl 类
package com.imooc.service.impl;import com.imooc.mapper.StuMapper;import com.imooc.pojo.Stu;import com.imooc.service.StuService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import org.springframework.transaction.annotation.Propagation;import org.springframework.transaction.annotation.Transactional;/*** @author 92578* @since 1.0*/@Servicepublic class StuServiceImpl implements StuService {@Autowiredprivate StuMapper stuMapper;@Transactional(propagation = Propagation.SUPPORTS)@Overridepublic Stu getStuInfo(int id) {return stuMapper.selectByPrimaryKey(id);}@Overridepublic void saveStu() {}@Overridepublic void updateStu(int id) {}@Overridepublic void deleteStu(int id) {}}
在 foodie-dev-api 模块中的 com.imooc.controller 包下面创建 StuFooController 类
package com.imooc.controller;import com.imooc.service.StuService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;/*** @author 92578* @since 1.0*/@RestControllerpublic class StuFooController {@Autowiredprivate StuService stuService;@GetMapping("/getStu")public Object getStu(int id) {return stuService.getStuInfo(id);}}
install 并运行项目

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