Mybatis如何获取到新insert数据的自增id

有时在新插入数据时我们需要获得新数据的id,这时候如果id是自增的要怎么获取呢?

首先看下insert的方法:

private <T extends BaseModel> int insert(String sqlName, T t) {
	int effectRows = this.getSqlSession().insert(sqlName, t);
	return effectRows;
}

返回的是影响的行数。

那如果我们用插入的对象再查询出来呢?

显然是不行的,如果连续插入两条数据内容是一样的,那就会查出来两条数据,无法确定id是哪一个了。

其实,mybatis已经利用反射机制,将返回的自增的id回填到model中了,所以只要在insert成功后,model.getId()获取即可。

发表评论

电子邮件地址不会被公开。 必填项已用*标注