详解mybatis plus使用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@Mapperpublic interface UserInfoDao extends BaseMapper<UserInfo> { // 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文件,果然看到<insert id='insert'>的sql语句。删掉该语句,重试mybatis plus的insert方法,这次有主键返回了。
到此这篇关于详解mybatis plus使用insert没有返回主键的处理的文章就介绍到这了,更多相关mybatis plus insert没有主键内容请搜索好吧啦网以前的文章或继续浏览下面的相关文章希望大家以后多多支持好吧啦网!
相关文章:
1. MySQL删除数据库表的操作方法2. Microsoft Office Access删除数据表关系层的方法3. 解析Oracle数据库内在索引和参数的调整4. DB2 与 Microsoft SQL Server 2000 之间的 SQL 数据复制(1)5. 一篇文章带你掌握SQLite3基本用法6. SQL Server静态页面导出技术17. Centos7 安装 Mysql8教程8. 如何实现MySQL数据库的备份与恢复9. Access数据库提示OleDbException (0x80004005): 操作必须使用一个可更新的查询10. navicat for mysql创建表的操作方法

网公网安备