添加课程信息接口:把两张表的数据分别存入数据库的代码实现-创新互联
前端传过来一个表单,表单中包含两张表,把两张表的数据分别存入数据库的代码实现
网站建设、网站设计介绍好的网站是理念、设计和技术的结合。成都创新互联公司拥有的网站设计理念、多方位的设计风格、经验丰富的设计团队。提供PC端+手机端网站建设,用营销思维进行网站设计、采用先进技术开源代码、注重用户体验与SEO基础,将技术与创意整合到网站之中,以契合客户的方式做到创意性的视觉化效果。EduCourse表
EduCourseDescription表,这张表引用 EduCourse的id
首先把表单对应的数据库字段整合成一个公共实体类,这个实体类和表单内容一一对应,但表单的内容需要插入不同的数据表。
首先根据表单内容创建一个实体类
@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;
private String subjectParentId;
}
在controller层把表单实体类courseInfoVo传到service层
@Autowired
private EduCourseService courseService;
@ApiOperation(value = "添加课程信息") //swagger提示注解定义在方法上:@ApiOperation
//添加课程信息
@PostMapping("addCourseInfo")
public R addCourseInfo(
@ApiParam(name = "id", value = "基本课程信息", required = true)
@RequestBody CourseInfoVo courseInfoVo){
//调用service
courseService.saveCourseInfo(courseInfoVo);
return R.ok();
}
来到service层和数据库做交互
@Service
public class EduCourseServiceImpl extends ServiceImplimplements EduCourseService {
//需要课程简介表的 service 直接注入进来
@Autowired
private EduCourseDescriptionService courseDescriptionService;
//添加课程信息
@Override
public void saveCourseInfo(CourseInfoVo courseInfoVo) {
//添加课程信息,首先 nwe 一个edu_Course对应的实体类,
EduCourse eduCourse = new EduCourse();
//将表单对应的实体类courseInfoVo copy 到 单表对应的实体类EduCourse 其中属性名一样的属性会自动复制
BeanUtils.copyProperties(courseInfoVo,eduCourse);
int insert = baseMapper.insert(eduCourse);
if(insert == 0){
throw new GuliException(20001,"请检查您输入的课程信息");
}
//不为空表示添加成功
//获取添加成功后的课程信息的 id 走到这一步EduCourse肯定添加成功了
String cid = eduCourse.getId();
//添加课程简介
EduCourseDescription eduCourseDescription = new EduCourseDescription();
eduCourseDescription.setDescription(courseInfoVo.getDescription());
//把课程信息eduCourse的 id 放到 简介eduCourseDescription的id上
eduCourseDescription.setId(cid);
//使用另一张表对应的service将eduCourseDescription保存到数据库
courseDescriptionService.save(eduCourseDescription);
}
}
另外由于eduCourseDescription.setId(cid);这个id是我们手动注入的所有要改变id生成策略
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="EduCourseDescription对象", description="课程简介")
public class EduCourseDescription implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "课程ID")
@TableId(value = "id", type = IdType.INPUT) //type = IdType.INPUT表示这个ID需要我们手动插入
private String id;
@ApiModelProperty(value = "课程简介")
private String description;
@ApiModelProperty(value = "创建时间")
@TableField(fill = FieldFill.INSERT)
private Date gmtCreate;
@ApiModelProperty(value = "更新时间")
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date gmtModified;
}
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
本文标题:添加课程信息接口:把两张表的数据分别存入数据库的代码实现-创新互联
文章分享:http://myzitong.com/article/dpcccc.html