SELECT LAST_INSERT_ID()总是返回1或者0

今天在做项目的时候使用到了SELECT LAST_INSERT_ID(),发现每次返回的结果都是1,我原来的sql语句比较长,下面用个事例演示一下。

@Insert("INSERT INTO student(name,phone,address)VALUES(#{name},#{phone},#{address})")
@SelectKey(keyProperty = "id", keyColumn = "id", resultType = int.class, before = false, statement = "select last_insert_id()")
int insert(Student student);

执行insert()方法,期望是每次返回上一次插入的数据的主键id,然而每次都返回1,经过一番检查后,发现"select last_insert_id()"已经执行了但是并不是这个方法的返回值,insert()方法的返回值是指执行完insert语句后影响数据库的行数,所以只有0或者1(即失败或者成功),而"select last_insert_id()"语句的结果被封装到了student对象中了,所以执行完sql语句后可以通过student.getId();获得。

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值