热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

详解mybatisplus使用insert没有返回主键的处理

这篇文章主要介绍了详解mybatisplus使用insert没有返回主键的处理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

项目使用springboot搭建。最初的时候是使用mybatis,后来升级到mybatis plus。按照mp的官网介绍,使用mp的insert方法,对于自增的数据库表,mp会把主键写入回实例的对应属性。但实际操作起来,却没有主键。

entity 类设置如下:

@TableName(value = "USERINFO")
public class UserInfo {
  /**
   * 指定自增策略
  */
  @TableId(value = "user_id",type = IdType.AUTO)
  private Long userId;

  private String gender;

  private Date birthday;

  private String phone;
//省略后面的其他属性和getter/setter
}

dao 类设置如下:

@Repository
@Mapper
public interface UserInfoDao extends BaseMapper {
  //  int insert(UserInfo record);

  int insertSelective(UserInfo record);

  UserInfo selectByPrimaryKey(Long logId);

  int updateByPrimaryKeySelective(UserInfo record);
}

Service类调用userInfoDao的insert方法(此方法是来源于BaseMapper)。但是insert成功后没有返回主键userId。上网查了下,其他人都是这样设置,就会有主键返回。

看到dao类里面一条注释,// int insert(UserInfo record); ,心里有个想法。

这条注释对应的insert方法,是使用mybatis generator生成的。但是因为此方法名和mybatis plus的通用方法名一样,所以我把它注释了。会不会是因为dao对应的mapper.xml文件,里面的id = inesert的sql语句依然存在,从而覆盖掉了mybatis plus的通用insert,所以没有自动返回主键。

点进去对应mapper.xml文件,果然看到的sql语句。删掉该语句,重试mybatis plus的insert方法,这次有主键返回了。

到此这篇关于详解mybatis plus使用insert没有返回主键的处理的文章就介绍到这了,更多相关mybatis plus insert没有主键内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!


推荐阅读
author-avatar
猪可夫司机
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有