若数据库里已经存在上面的数据,设一个事件来阻止重复提交
在XML里写入两条sql语句(因为有关键词与排位两个条件)
<select id = "selectWord" resultType="java.lang.Integer" parameterType="java.lang.String" >
select count(*) from t_keyword where keyword = #{keyword};
</select>
<select id = "selectRank" resultType="java.lang.Integer" parameterType="java.lang.Integer" >
select count(*) from t_keyword where recommend_rank = #{recommendRank};
</select>
Mapper接口:
public interface KeywordMapper extends BaseMapper<Keyword> {
Integer selectWord(String keyword);
Integer selectRank(Integer recommendRank);
}
Service服务类:
public interface IKeywordService extends IService<Keyword> {
Integer selectWord(String keyword);
Integer selectRank(Integer recommendRank);
}
ServiceImpl服务实现类:
@Service
public class KeywordServiceImpl extends ServiceImpl<KeywordMapper, Keyword> implements IKeywordService {
@Autowired
private KeywordMapper keywordMapper;
@Override
public Integer selectWord(String keyword) {
return this.keywordMapper.selectWord(keyword);
}
@Override
public Integer selectRank(Integer recommendRank) {
return this.keywordMapper.selectRank(recommendRank);
}
}
Controller里写入判断条件
if(keyword.getId() == null){
Integer count = keywordService.selectWord(keyword.getKeyword());
if(count != 0){
return ResultJson.failure(ResultCode.DATA_EXIST);
}
}
if(keyword.getId() == null){
Integer Rank = keywordService.selectRank(keyword.getRecommendRank());
if(Rank != 0){
return ResultJson.failure(ResultCode.RANK_EXIST);
}
}
首先判断这条数据是否已经添加(判断id是否为空,若为空,说明现在执行的是添加操作。若不为空,执行的是编辑操作,编辑操作不需要上述的方法来限制)
判断为空后,执行代码
Integer count = keywordService.selectWord(keyword.getKeyword());
传入count参数,若count不为零,说明数据已存在,返回错误信息
下面的Rank排位同理。