@Override public RestResponse add(CourseCategoryDTO categoryDTO) { //1 dto -> entity CourseCategoryConvert.INSTANCE.dto2entity(); CourseCategory entity = CourseCategoryConvert.INSTANCE.dto2entity(categoryDTO); //2 参数校验(注意 parentid字段校验是否是父分类问题) List<CourseCategory> categoryList = courseCategoryMapper.selectList(null); boolean flag = false; for (CourseCategory category : categoryList) { if (category.getId().equals(entity.getParentid())) { flag = true; break; } } if (!flag) { throw new BusinessException(CommonErrorCode.E_100106); } //3 执行修改操作 int insert = courseCategoryMapper.insert(entity); //4 返回结果 (新增成功/新增失败) return (insert == 0 ? RestResponse.validfail("请求失败") : RestResponse.success()); }解释一下这段代码
时间: 2024-02-14 22:35:57 浏览: 36
这段代码是一个Java后端的方法,用于向数据库中添加一个课程分类。接收一个CourseCategoryDTO对象作为参数,将其转换为CourseCategory实体对象。然后对父分类进行校验,判断父分类是否存在于数据库中。如果不存在,则抛出业务异常。如果存在,则执行插入操作,将实体对象插入到数据库中。最后根据插入结果返回一个RestResponse对象,表示操作成功或者失败。
相关问题
@Override public RestResponse edit(CourseCategoryDTO categoryDTO) { //1 dto -> entity //2 参数校验 //3 执行修改操作 //4 返回结果 return null; }补全代码
可以根据以下的代码补全:
```
@Override
public RestResponse edit(CourseCategoryDTO categoryDTO) {
//1 dto -> entity
CourseCategoryEntity categoryEntity = BeanUtil.copyProperties(categoryDTO, CourseCategoryEntity.class);
//2 参数校验
ValidatorUtil.validateEntity(categoryEntity);
//3 执行修改操作
boolean result = courseCategoryService.updateById(categoryEntity);
//4 返回结果
if (result) {
return RestResponse.success();
} else {
return RestResponse.error("修改失败");
}
}
```
这段代码实现了一个编辑课程分类的接口。具体实现步骤如下:
1. 将传入的 DTO 对象转换成对应的实体类对象。
2. 对实体类对象进行参数校验,确保数据的合法性。
3. 调用 service 层的 updateById() 方法执行修改操作。
4. 根据操作结果返回相应的 RestResponse 对象,成功时返回成功信息,失败时返回错误信息。
Java spring mybatis MySQL 编写短信模板增删改查,使用SMStemplate作为名称,字段有seq_no,template_id,push_plan_tp_cd,template_name,template_content,creator_no,create_time,modifier_no,mod_time,opror_instno,需要mapper.xml,mapper,controller,servive,serviceimpl,dto
首先,我们需要定义一个 SMSTemplate 实体类,包含上述字段和对应的 getter 和 setter 方法:
```
public class SMSTemplate {
private Integer seqNo;
private String templateId;
private String pushPlanTpCd;
private String templateName;
private String templateContent;
private String creatorNo;
private Date createTime;
private String modifierNo;
private Date modTime;
private String oprorInstno;
// 省略 getter 和 setter 方法
}
```
接下来,我们可以创建一个 SMSTemplateMapper 接口,定义增删改查的方法:
```
public interface SMSTemplateMapper {
// 根据序号查询短信模板
SMSTemplate getSMSTemplateBySeqNo(Integer seqNo);
// 新增短信模板
void addSMSTemplate(SMSTemplate smsTemplate);
// 修改短信模板
void updateSMSTemplate(SMSTemplate smsTemplate);
// 删除短信模板
void deleteSMSTemplate(Integer seqNo);
}
```
然后,我们需要在 mapper.xml 中编写对应的 SQL 语句:
```
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mapper.SMSTemplateMapper">
<resultMap id="smsTemplateMap" type="com.example.entity.SMSTemplate">
<id property="seqNo" column="seq_no"/>
<result property="templateId" column="template_id"/>
<result property="pushPlanTpCd" column="push_plan_tp_cd"/>
<result property="templateName" column="template_name"/>
<result property="templateContent" column="template_content"/>
<result property="creatorNo" column="creator_no"/>
<result property="createTime" column="create_time"/>
<result property="modifierNo" column="modifier_no"/>
<result property="modTime" column="mod_time"/>
<result property="oprorInstno" column="opror_instno"/>
</resultMap>
<select id="getSMSTemplateBySeqNo" resultMap="smsTemplateMap">
SELECT seq_no, template_id, push_plan_tp_cd, template_name, template_content, creator_no, create_time, modifier_no, mod_time, opror_instno
FROM SMStemplate
WHERE seq_no = #{seqNo}
</select>
<insert id="addSMSTemplate">
INSERT INTO SMStemplate (template_id, push_plan_tp_cd, template_name, template_content, creator_no, create_time, modifier_no, mod_time, opror_instno)
VALUES (#{templateId}, #{pushPlanTpCd}, #{templateName}, #{templateContent}, #{creatorNo}, #{createTime}, #{modifierNo}, #{modTime}, #{oprorInstno})
</insert>
<update id="updateSMSTemplate">
UPDATE SMStemplate
SET template_id = #{templateId},
push_plan_tp_cd = #{pushPlanTpCd},
template_name = #{templateName},
template_content = #{templateContent},
modifier_no = #{modifierNo},
mod_time = #{modTime},
opror_instno = #{oprorInstno}
WHERE seq_no = #{seqNo}
</update>
<delete id="deleteSMSTemplate">
DELETE FROM SMStemplate
WHERE seq_no = #{seqNo}
</delete>
</mapper>
```
接下来,我们可以创建一个 SMSTemplateService 接口和其实现类 SMSTemplateServiceImpl,来调用 SMSTemplateMapper 中定义的方法:
```
public interface SMSTemplateService {
SMSTemplate getSMSTemplateBySeqNo(Integer seqNo);
void addSMSTemplate(SMSTemplate smsTemplate);
void updateSMSTemplate(SMSTemplate smsTemplate);
void deleteSMSTemplate(Integer seqNo);
}
@Service
public class SMSTemplateServiceImpl implements SMSTemplateService {
private final SMSTemplateMapper smsTemplateMapper;
public SMSTemplateServiceImpl(SMSTemplateMapper smsTemplateMapper) {
this.smsTemplateMapper = smsTemplateMapper;
}
@Override
public SMSTemplate getSMSTemplateBySeqNo(Integer seqNo) {
return smsTemplateMapper.getSMSTemplateBySeqNo(seqNo);
}
@Override
public void addSMSTemplate(SMSTemplate smsTemplate) {
smsTemplateMapper.addSMSTemplate(smsTemplate);
}
@Override
public void updateSMSTemplate(SMSTemplate smsTemplate) {
smsTemplateMapper.updateSMSTemplate(smsTemplate);
}
@Override
public void deleteSMSTemplate(Integer seqNo) {
smsTemplateMapper.deleteSMSTemplate(seqNo);
}
}
```
最后,我们可以创建一个 SMSTemplateController 类,来接收前端请求,并调用 SMSTemplateService 中的方法:
```
@RestController
@RequestMapping("/sms")
public class SMSTemplateController {
private final SMSTemplateService smsTemplateService;
public SMSTemplateController(SMSTemplateService smsTemplateService) {
this.smsTemplateService = smsTemplateService;
}
@GetMapping("/{seqNo}")
public SMSTemplate getSMSTemplateBySeqNo(@PathVariable("seqNo") Integer seqNo) {
return smsTemplateService.getSMSTemplateBySeqNo(seqNo);
}
@PostMapping
public void addSMSTemplate(@RequestBody SMSTemplate smsTemplate) {
smsTemplateService.addSMSTemplate(smsTemplate);
}
@PutMapping
public void updateSMSTemplate(@RequestBody SMSTemplate smsTemplate) {
smsTemplateService.updateSMSTemplate(smsTemplate);
}
@DeleteMapping("/{seqNo}")
public void deleteSMSTemplate(@PathVariable("seqNo") Integer seqNo) {
smsTemplateService.deleteSMSTemplate(seqNo);
}
}
```
以上就是使用 Java spring mybatis MySQL 编写短信模板增删改查的全部代码。