当前位置: 移动技术网 > IT编程>开发语言>Java > SpringBoot整合MyBatis获得插入数据后获取主键,返回值总是1

SpringBoot整合MyBatis获得插入数据后获取主键,返回值总是1

2020年01月02日  | 移动技术网IT编程  | 我要评论

xml里的写法 

<insert id="insertlogin" parametertype="com.xyt.p2p.pojo.logininfo" keycolumn="userid" 
 usegeneratedkeys="true" keyproperty="userid">
    insert into logininfo
        (username,password,state,role)
    values
        (#{username},#{password},#{state}, #{role})
</insert>

采用keyproperty的方式获取主键,我的实体类上也有对应的属性cardid,而我数据库的主键card_id也是自增的,但是获得的值一直是1?!!!

em…难道是我启动项目的姿势不对?要不我换个妖娆的姿势启动看看?莫非代码也看脸?

 

几经周转才发现原来是因为我service层获得主键id的方式不对,下面是我错误的写法:

serviceimpl写法: 
1.错误的示范:其实xml里面sql执行后返回的值是受影响行数

public result register(logininfo user) {
    long userid = loginmapper.insertlogin(user);
    system.out.println(userid);
}

2.正确方式

public result register(logininfo user) {
    loginmapper.insertlogin(user);
    system.out.println(user.getuserid());
}

最终还是需要用之前传入的对象的getid()方法来获取。

 

ending...

 

 

原文:https://blog.csdn.net/weixin_42244235/article/details/82391810

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网