介绍
mybatis +使用插入时没有返回主键怎么解决?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
项目使用springboot搭建。最初的时候是使用mybatis,后来升级到mybatis优先。按照议员的官网介绍,使用议员的插入方法,对于自增的数据库表,议员会把主键写入回实例的对应属性。但实际操作起来,却没有主键。
实体类设置如下:
@TableName (value=https://www.yisu.com/zixun/"用户信息") 公开课用户信息{/* * *指定自增策略 */@TableId(值=皍ser_id类型=IdType.AUTO) 私人长标识; 私人字符串性别; 私人生日日期; 私人字符串电话;//省略后面的其他属性和getter/setter }
dao类设置如下:
@ @Mapper 公共接口UserInfoDao延伸BaseMapper{//int插入(用户信息记录); int insertSelective(用户信息记录); 用户信息selectByPrimaryKey(长logId); int updateByPrimaryKeySelective(用户信息记录); }
服务类调用userInfoDao的插入方法(此方法是来源于基础图)。但是插入成功后没有返回主键标识。上网查了下,其他人都是这样设置,就会有主键返回。
看到dao类里面一条注释,//int插入(用户信息记录);,心里有个想法。
这条注释对应的插入方法,是使用mybatis发电机生成的。但是因为此方法名和mybatis +的通用方法名一样,所以我把它注释了。会不会是因为刀对应的映射。xml文件,里面的id=inesert的sql语句依然存在,从而覆盖掉了mybatis +的通用插入,所以没有自动返回主键。
点进去对应mapper.xml文件,果然看到& lt;插入id=癷nsert"祝辞的sql语句。删掉该语句,重试mybatis +的插入方法,这次有主键返回了。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。