篮球
问题描述
想要通过Mybatis获得插入后的自增id,但总是返回1,代码如下:
long insertCommentInfo(CommentInfo commentInfo);
<insert id="insertCommentInfo" parameterType="CommentInfo" useGeneratedKeys="true" keyProperty="id">
insert into comment_info (content, ip
<if test="connect != null">
,connect
</if>
<if test="name != null">
,name
</if>
) values (#{content}, #{ip}
<if test="connect != null">
,#{connect}
</if>
<if test="name != null">
,#{name}
</if>
);
</insert>
但是如你所见,在调用方法时:
System.out.print(insertCommentInfo(commentInfo));
却总是返回1
问题原因
在Mybatis中,返回值代表的是插入的行数
解决办法
事实上,Mybatis把返回的id值已经封装在了传入的参数中,所以我们需要:
System.out.print(commentInfo.getId());
在使用Mybatis进行数据库操作时,正确获取插入后自增ID的方法解析。文章指出,Mybatis将生成的ID封装在传入参数中,而非直接作为方法返回值。
507

被折叠的 条评论
为什么被折叠?



