在数据库中创建 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
*/
@Service
public class StuServiceImpl implements StuService {
@Autowired
private StuMapper stuMapper;
@Transactional(propagation = Propagation.SUPPORTS)
@Override
public Stu getStuInfo(int id) {
return stuMapper.selectByPrimaryKey(id);
}
@Override
public void saveStu() {
}
@Override
public void updateStu(int id) {
}
@Override
public 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
*/
@RestController
public class StuFooController {
@Autowired
private 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
此时数据库没有数据,所以前台页面一片空白
在数据库中插入一条记录
刷新页面,看到返回数据