请通过Java spring mybatis MySQL 编写短信模板的增删改查,使用SMStemplateDTO作为实体类名称,数据库字段有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,controller需要使用public restresponse并抛出异常生成错误代码,并且把controller拆分出api,错误日志使用log.true,使用Junit和mockito,@injectmocks,@mock,mockit.when(xx).thenReturn(xx),最后使用verify,tims(xx)验收执行次数,仅通过impl层生成测试
时间: 2024-02-24 21:53:09 浏览: 64
spring+springmvc+mybatis完善的增删改查,适合新手,数据库是mysql,自己建立一下数据库数据
好的,我将为您提供一个简单的示例代码,用于增删改查短信模板。
首先,我们需要定义一个 SMStemplateDTO 的实体类,如下所示:
```java
public class SMStemplateDTO {
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;
// getters and setters
}
```
接下来,我们需要定义一个 SMStemplateMapper 接口,如下所示:
```java
public interface SMStemplateMapper {
SMStemplateDTO selectByPrimaryKey(Integer seqNo);
int insert(SMStemplateDTO record);
int updateByPrimaryKey(SMStemplateDTO record);
int deleteByPrimaryKey(Integer seqNo);
}
```
接下来,我们需要定义一个 SMStemplateServiceImpl 实现 SMStemplateService 接口,如下所示:
```java
@Service
public class SMStemplateServiceImpl implements SMStemplateService {
@Autowired
private SMStemplateMapper smsTemplateMapper;
@Override
public SMStemplateDTO getSMStemplateByPrimaryKey(Integer seqNo) {
return smsTemplateMapper.selectByPrimaryKey(seqNo);
}
@Override
public void addSMStemplate(SMStemplateDTO record) {
smsTemplateMapper.insert(record);
}
@Override
public void updateSMStemplate(SMStemplateDTO record) {
smsTemplateMapper.updateByPrimaryKey(record);
}
@Override
public void deleteSMStemplate(Integer seqNo) {
smsTemplateMapper.deleteByPrimaryKey(seqNo);
}
}
```
接下来,我们需要定义一个 SMStemplateController 类,如下所示:
```java
@RestController
@RequestMapping("/api/smstemplate")
public class SMStemplateController {
@Autowired
private SMStemplateService smsTemplateService;
@GetMapping("/{seqNo}")
public RestResponse getSMStemplateByPrimaryKey(@PathVariable Integer seqNo) {
SMStemplateDTO smsTemplate = smsTemplateService.getSMStemplateByPrimaryKey(seqNo);
if (smsTemplate == null) {
throw new NotFoundException("短信模板不存在");
}
return RestResponse.success(smsTemplate);
}
@PostMapping
public RestResponse addSMStemplate(@RequestBody SMStemplateDTO record) {
smsTemplateService.addSMStemplate(record);
return RestResponse.success();
}
@PutMapping("/{seqNo}")
public RestResponse updateSMStemplate(@PathVariable Integer seqNo, @RequestBody SMStemplateDTO record) {
SMStemplateDTO smsTemplate = smsTemplateService.getSMStemplateByPrimaryKey(seqNo);
if (smsTemplate == null) {
throw new NotFoundException("短信模板不存在");
}
smsTemplate.setTemplateId(record.getTemplateId());
smsTemplate.setPushPlanTpCd(record.getPushPlanTpCd());
smsTemplate.setTemplateName(record.getTemplateName());
smsTemplate.setTemplateContent(record.getTemplateContent());
smsTemplate.setModifierNo(record.getModifierNo());
smsTemplate.setModTime(new Date());
smsTemplate.setOprorInstno(record.getOprorInstno());
smsTemplateService.updateSMStemplate(smsTemplate);
return RestResponse.success();
}
@DeleteMapping("/{seqNo}")
public RestResponse deleteSMStemplate(@PathVariable Integer seqNo) {
SMStemplateDTO smsTemplate = smsTemplateService.getSMStemplateByPrimaryKey(seqNo);
if (smsTemplate == null) {
throw new NotFoundException("短信模板不存在");
}
smsTemplateService.deleteSMStemplate(seqNo);
return RestResponse.success();
}
}
```
最后,我们需要编写 SMStemplateServiceImpl 的单元测试类,如下所示:
```java
@RunWith(MockitoJUnitRunner.class)
public class SMStemplateServiceImplTest {
@InjectMocks
private SMStemplateServiceImpl smsTemplateService;
@Mock
private SMStemplateMapper smsTemplateMapper;
@Test
public void testGetSMStemplateByPrimaryKey() {
SMStemplateDTO smsTemplate = new SMStemplateDTO();
smsTemplate.setSeqNo(1);
smsTemplate.setTemplateName("短信模板1");
Mockito.when(smsTemplateMapper.selectByPrimaryKey(1)).thenReturn(smsTemplate);
SMStemplateDTO result = smsTemplateService.getSMStemplateByPrimaryKey(1);
Assert.assertEquals(smsTemplate, result);
Mockito.verify(smsTemplateMapper, Mockito.times(1)).selectByPrimaryKey(1);
}
@Test
public void testAddSMStemplate() {
SMStemplateDTO smsTemplate = new SMStemplateDTO();
smsTemplate.setSeqNo(1);
smsTemplate.setTemplateName("短信模板1");
Mockito.when(smsTemplateMapper.insert(smsTemplate)).thenReturn(1);
smsTemplateService.addSMStemplate(smsTemplate);
Mockito.verify(smsTemplateMapper, Mockito.times(1)).insert(smsTemplate);
}
@Test
public void testUpdateSMStemplate() {
SMStemplateDTO smsTemplate = new SMStemplateDTO();
smsTemplate.setSeqNo(1);
smsTemplate.setTemplateName("短信模板1");
Mockito.when(smsTemplateMapper.selectByPrimaryKey(1)).thenReturn(smsTemplate);
smsTemplateService.updateSMStemplate(smsTemplate);
Mockito.verify(smsTemplateMapper, Mockito.times(1)).updateByPrimaryKey(smsTemplate);
}
@Test
public void testDeleteSMStemplate() {
Mockito.when(smsTemplateMapper.deleteByPrimaryKey(1)).thenReturn(1);
smsTemplateService.deleteSMStemplate(1);
Mockito.verify(smsTemplateMapper, Mockito.times(1)).deleteByPrimaryKey(1);
}
}
```
注意,以上代码仅供参考,具体实现方式可能因项目而异。
阅读全文