新增数据然后返回当前新增的这条数据的主键id
方式一:使用sql查询 失败
查询最新的主键根据表里的创建时间排序,但是查询结果是数据库数据倒数第三条
方式二:使用Mybatix的insert标签 失败
使用Mybatis自带XML新增返回主键ID的方式
<insert id="insert" parameterType="对象" useGeneratedKeys="true" keyProperty="id">
但是实际业务的ID都是随机生成或自增的,手写的SQL id字段不能为空或null、default
方式三:同事建议 成功
同事给的建议是再用新增的那个对象调一下他的id就行了,然后调用查询接口查询新增返回的ID,果然是新增的那一条ID
代码
/**
* 判断字符串是否是json,是就能新增
* @param context
* @return
*/
@Override
@Transactional(rollbackFor = Exception.class)
public R saveTemplate(String context) {
//调用判断JSON格式的方法
boolean json = isJson(context);
if (!json) {
throw new CustomException("格式错误");
}
DataTemplateDTO dataTemplateDTO = new DataTemplateDTO();
dataTemplateDTO.setContext(context);
baseMapper.insert(dataTemplateDTO);
//用新增对象掉一下他的ID
return R.data(dataTemplateDTO.getId());
}