mybatis insert 插入数据 想要返回自增主键ID 得到一直是1
mybatis insert 插入数据 想要返回自增主键ID 得到一直是1
·
mybatis insert 插入数据 想要返回自增主键ID 得到一直是1
记录一下小问题:最近在写毕业设计,需要用到insert返回id。因为之前写过,所以就眼高手低直接写了,然后出现了,插入数据成功返回的却不是相应的自增ID.
问题所在
Mapper层
int adminInsertCommunity(Community community);
得到的返回值其实表示插入的行数
<insert id="adminInsertCommunity" useGeneratedKeys="true" keyProperty="id" parameterType="com.lf.mycommunity.domain.Community">
insert into community(name,total_num,current_num,address,introduce) values (#{name},#{total_num},#{current_num},#{address},#{introduce})
</insert>
其中 useGeneratedKeys=“true”、keyProperty=“id” 会将主键id 封装到对象的id。所以不应直接用返回的值,而是通过使用对象的get方法获取,如下;
int count = communityService.adminInsertCommunity(community); // 调用service实现insert插入
communityHashMap.put("得到为1(为插入的行数):",count ); // 错误获取自增ID的方式,误以为count是返回的自增的ID,其实只不过影响的行数。这里新增了一条,结果应该为:1
communityHashMap.put("得到ID",community.getId() ); // 正确获取自增ID的方式 ,通过对象得get方法获得自增主键ID
上面代码的执行结果
count的对应结果为1
得到的ID 为自增ID 13

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)