1.使用代码生成器生成代码
运行
记得将所有的主键生成策略都改一下
课程id需要我们自己去输入
以及时间的自动填充
2.细节问题
1.创建vo实体类用于表单数据封装
2.表单提交的数据添加到数据库(需要加到两个数据库,课程表,课程描述表)
3.把讲师和分类做成下拉列表的形式,课程分类做成二级联动效果
3.具体实现
创建vo实体类用于表单数据封装
@Data public class CourseInfoVo { @ApiModelProperty(value = "课程ID") private String id; @ApiModelProperty(value = "课程讲师ID") private String teacherId; @ApiModelProperty(value = "课程专业ID") private String subjectId; @ApiModelProperty(value = "课程标题") private String title; @ApiModelProperty(value = "课程销售价格,设置为0则可免费观看") private BigDecimal price; @ApiModelProperty(value = "总课时") private Integer lessonNum; @ApiModelProperty(value = "课程封面图片路径") private String cover; @ApiModelProperty(value = "课程简介") private String description; }
这个实体类就是我们要传的值
然后创建controller的方法
@RestController @RequestMapping("/eduservice/edu-course") @CrossOrigin public class EduCourseController { @Autowired EduCourseService courseService; @PostMapping("addcourse") public R addcourseInfo(@RequestBody CourseInfoVo courseInfoVo){ courseService.saveCourseInfo(courseInfoVo); return R.OK(); } }
service
public interface EduCourseService extends IService<EduCourse> { void saveCourseInfo(CourseInfoVo courseInfoVo); }
serviceImpl
@Service public class EduCourseServiceImpl extends ServiceImpl<EduCourseMapper, EduCourse> implements EduCourseService { @Autowired private EduCourseDescriptionService courseDescriptionService; @Override public void saveCourseInfo(CourseInfoVo courseInfoVo) { //向课程表中加信息 //courseInfoVo转换成EduCourse EduCourse eduCourse=new EduCourse(); BeanUtils.copyProperties(courseInfoVo,eduCourse); int i=baseMapper.insert(eduCourse); if(i==0){ throw new onlineEduException(20001,"添加失败"); } //获取添加课程id String cid=eduCourse.getId(); //向课程描述表中加信息 EduCourseDescription eduCourseDescription=new EduCourseDescription(); eduCourseDescription.setDescription(courseInfoVo.getDescription()); eduCourseDescription.setId(cid); courseDescriptionService.save(eduCourseDescription); } }
在这里需要注意couse和couse_description的id应该是一对一的
进行测试
然后我们去数据库中查看
可以看到是一样的