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
如对本文有疑问, 点击进行留言回复!!
springmvc之ResponseBody响应json数据遇到的错误及解决
uni-app 后台升级 静默升级 uniapp 后台更新 静默更新 在线升级
SpringBoot多Module启动报错Could not transfer metadata
Hibernate项目报错:Cannot call sendError() after the response has been committed
网友评论