SpringBoot整合MyBatis获得插入数据后获取主键,…

2020-01-02 08:42:02来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

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

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


原文链接:https://www.cnblogs.com/hxun/p/12132346.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:java核心-多线程-线程池-ThreadPoolExecutor

下一篇:习题两则(自增操作符和数据类型相关知识点)