注意mybatisPlus没有实现该功能,还是靠传统方式。
注意:方法名要有唯一性
1.在Mapper.xml中的添加方法中加:
useGeneratedKeys="true" keyProperty="id"
例如:
<insert id="addChapters" parameterType="com.mbyte.easy.chapters.entity.Chapters"
useGeneratedKeys="true" keyProperty="id">
insert into t_chapters (tutorials_name, tutorials_content, create_time, update_time)
values (
#{tutorialsName,jdbcType=VARCHAR},
#{tutorialsContent,jdbcType=VARCHAR},
#{createTime,jdbcType=TIMESTAMP},
#{updateTime,jdbcType=TIMESTAMP})
</insert>
注意:
你要是用的mybatisPlus,注意这是自己写的方法,
@TableField(fill = FieldFill.INSERT_UPDATE)
自动填充注解不起作用!!- 那些
deleteStatus,deleteTime
啥的不需要创建的字段就不写了 - 还有就是删除字段时末尾的逗号存在也会出错
2.Mapper类添加方法,
(返回int是改变的元组数,不是回调的id!!!)
public interface TutorialCoverMapper extends BaseMapper<TutorialCover> {
int addChapters(TutorialCover tutorialCover);
}
3.service
public interface ITutorialCoverService extends IService<TutorialCover> {
int addChapters(TutorialCover tutorialCover);
}
4.serviceImpl
注意:必须加@Transactional
才会执行
@Service
public class TutorialCoverServiceImpl extends ServiceImpl<TutorialCoverMapper, TutorialCover> implements ITutorialCoverService {
@Autowired
private ITutorialsService tutorialsService;
@Resource
private TutorialCoverMapper tutorialCoverMapper;
//
@Transactional
@Override
public int addChapters(TutorialCover tutorialCover) {
return tutorialCoverMapper.insert(tutorialCover);
}
}
5.使用
注意:insertNum是改变元组的个数!!回调id已经填入你插入的对应实体了
//回调id
//insertNum是改变元组的个数!!不是回调的id
int insertNum = tutorialCoverService.addChapters(tutorialCover);
//回调id已经填入你插入的对应实体了
//实体中id已经有值了
long tutorialCoverId = tutorialCover.getId();